大写字符的 Javascript 拆分字符串

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

所以我想分开:

'ThisIsTheStringToSplit'

进入

['This', 'Is', 'The', 'String', 'To', 'Split']
104455 次浏览

给你:)

var arr = UpperCaseArray("ThisIsTheStringToSplit");


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

我会这样处理 .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])/);
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

这个应该也能处理数字。.最后的 join 会将所有数组项连接到一个句子,如果您想要查找这个句子的话

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

输出

"This Is The String To 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(' ');

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

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


console.log(result)

我是一个编程的新手,这是我解决它的方法,使用 JavaScript 声明变量的基本知识,尽可能让人阅读,请不要杀死我,如果它没有优化,只是从编码开始呵呵:)

  function solution(string) {


let newStr = '';


for( i = 0; i < string.length ; i++ ) {
const strOriginal = string[i];
const strUpperCase = string[i].toUpperCase();


if( strOriginal === strUpperCase) {
newStr = newStr + ' ' + strOriginal;
} else {
newStr = newStr + strOriginal;
}


}


return console.log(newStr);


}




solution('camelCasing');
string DemoStirng = "ThisIsTheStringToSplit";
for (int i = 0; i < DemoStirng.Length; i++) {
if (i != 0)
{
if ((int)DemoStirng[i] <= 90 && (int)DemoStirng[i] >= 65)
{
var aStringBuilder = new StringBuilder(DemoStirng);
aStringBuilder.Insert(i, ",");
DemoStirng = aStringBuilder.ToString();
i++;
}
}
}
string[] words = DemoStirng.Split(',');