Javascript 在大写字符上拆分字符串

IT技术 javascript
2021-03-10 12:18:46

JavaScript 如何通过大写字符将字符串拆分为数组?

所以我想拆分:

'ThisIsTheStringToSplit'

进入

['This', 'Is', 'The', 'String', 'To', 'Split']
5个回答

我会这样做.match()

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);

它将创建一个这样的数组:

['This', 'Is', 'The', 'String', 'To', 'Split']

编辑:由于该string.split()方法也支持正则表达式,所以可以这样实现

'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters

这也将解决评论中的问题:

"thisIsATrickyOne".split(/(?=[A-Z])/);
这不会找到单个大写字符。我建议如下: "thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
2021-04-23 12:18:46
回到一个可读的字符串"thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1).join(" ")给出this Is A Tricky One
2021-04-28 12:18:46
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

这也应该处理数字..最后的连接会导致将所有数组项连接成一个句子,如果这就是你要找的

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

输出

"This Is The String To Split"
太棒了。但是在以下情况下使用它的任何人都应该小心:'ThisIs8TheSt3ringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")将输出This Is 8 The St 3 To Split,省略小写 string( ring) 之后3
2021-05-16 12:18:46

这个给你 :)

var arr = UpperCaseArray("ThisIsTheStringToSplit");

function UpperCaseArray(input) {
    var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
    return result.split(",");
}

这是我的解决方案,它快速、跨平台、不依赖编码,并且可以轻松地用任何语言编写而无需依赖。

var s1 = "ThisЭтотΨόυτÜimunəՕրինակPříkladדוגמאΠαράδειγμαÉlda";
s2 = s1.toLowerCase();
result="";
for(i=0; i<s1.length; i++)
{
 if(s1[i]!==s2[i]) result = result +' ' +s1[i];
 else result = result + s2[i];
}
result.split(' ');
这是一个很好的方法,在小写后比较各个字符串
2021-04-21 12:18:46

这是一个处理数字、完全小写部分和多个大写字母的答案:

const wordRegex = /[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;
const string = 'thisIsTHEString1234toSplit';
const result = string.match(wordRegex);

console.log(result)