如何在JavaScript中通过大写字母将字符串拆分为数组?
我想要将以下字符串进行拆分:
'ThisIsTheStringToSplit'
转换为
['This', 'Is', 'The', 'String', 'To', 'Split']
如何在JavaScript中通过大写字母将字符串拆分为数组?
我想要将以下字符串进行拆分:
'ThisIsTheStringToSplit'
转换为
['This', 'Is', 'The', 'String', 'To', '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])/);
"thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
。 - andrewmu"thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1).join(" ")
的结果是 this Is A Tricky One
。 - Simon Hutchison.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"
'ThisIs8TheSt3ringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
将输出This Is 8 The St 3 To Split
,忽略了3
之后的小写字符串(ring
)。 - Diablo这里是您需要的 :)
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(' ');
以下是一个处理数字、全部小写字母部分以及连续多个大写字母的答案:
const wordRegex = /[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;
const string = 'thisIsTHEString1234toSplit';
const result = string.match(wordRegex);
console.log(result)
这段代码将返回以下输出
const str = 'ThisIsTheStringToSplit';
str.split(/(?=[A-Z])/);
// It will print this output
['This', 'Is', 'The', 'String', 'To', 'Split']
我是编程的新手,这是我解决它的方式,只使用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(',');