如何通过大写字符在 JavaScript 中将字符串拆分为数组?
所以我想分开:
'ThisIsTheStringToSplit'
进入
['This', 'Is', 'The', 'String', 'To', 'Split']
给你:)
var arr = UpperCaseArray("ThisIsTheStringToSplit"); function UpperCaseArray(input) { var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, ""); return result.split(","); }
我会这样处理 .match():
.match()
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
它会创建一个这样的数组:
编辑: 由于 string.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(',');