【问题标题】:Javascript, split a string at uppercase and isolate uppercaseJavascript,以大写拆分字符串并隔离大写
【发布时间】:2014-02-21 05:56:36
【问题描述】:

我正在尝试使用正则表达式将字符串拆分为大写字符,并将它们与小写字符或数字隔离开来。

即我正在尝试使用这样的字符串:

"This is a Test STring"

并将其拆分为这样的数组:

("T", "his is a ", "T", "est ", "S", "T", "ring")

我一直在尝试调整类似于本示例中的正则表达式:
match(/[A-Z]?[^A-Z]*)+/g).slice(0,-1)

【问题讨论】:

    标签: javascript regex string


    【解决方案1】:

    你可以使用这个正则表达式:

    ([A-Z]|[a-z ]+)
    

    工作正则表达式示例:

    http://regex101.com/r/lH6hB0

    Javascript:

    var str = "This is a Test STring"; 
    var res = str.match(/([A-Z]|[a-z ]+)/g);
    

    res 的结果将是一个包含以下值的数组:

    "T", "his is a", "T", "est", "S", "T", "ring" 
    

    【讨论】:

    • 对其进行了一些微调以处理数字([A-Z]|[a-z0-9 ]+)
    • 对于 anything 这不是一个上限:\W|[a-z0-9_ ],所以要完成这个:/[A-Z]|\W|[a-z0-9_ ]+/g -- jsfiddle.net/mhfaust/Z88XN
    【解决方案2】:

    你可以用一串意想不到的字符包围大写,然后在那个字符串上分割:

    var s = "This is a Test STring";
    
    var array = s.replace(/([A-Z])/g, '___$1___').split('___');
    

    【讨论】:

    • 我喜欢这个解决方案,因为这样您就不必担心如何处理字符串中其他地方的非字母字符
    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 2020-06-05
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多