我有这个字符串 ActionComedySci-Fi
,我想将它分成一个 ["Action", "Comedy", "Sci-Fi"]
之类的数组,但该字符串也可以是 ActionComedyThriller
,它没有连字符,并且这些单词可以按任何顺序排列。
所以我的问题是:如何使用 Node.JS 按大写字母拆分字符串并将它们包含在同一数组列中,即使它们有连字符?
我尝试使用 "ActionComedySci-Fi".split(' ')[0].match(/[A-Z]*[^A-Z]+/g);
但只返回 ["Action", "Comedy", "Sci-", "Fi"];
最佳答案
而不是split
,您可以使用match
使用此前瞻正则表达式:
/([A-Z].*?[a-z])(?=[A-Z]|$)/gm
([A-Z].*?[a-z])
将从大写字母匹配到小写字母。
代码:
var re = /([A-Z].*?[a-z])(?=[A-Z]|$)/gm
var s = 'ActionComedySci-Fi'
var m = s.match(re)
//=> ["Action", "Comedy", "Sci-Fi"]
s = 'ActionComedyThriller'
m = s.match(re)
//=> ["Action", "Comedy", "Thriller"]
关于arrays - Node.JS 将可能带有连字符的大写字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712175/