簡體   English   中英

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

[英]Javascript Split string on UpperCase Characters

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])/);
.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"

給你 :)

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 = /[AZ]?[az]+|[0-9]+|[AZ]+(?![az])/g; const string = 'thisIsTHEString1234toSplit'; const result = string.match(wordRegex); console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM