คุณแยกสตริงออกเป็นอาร์เรย์ใน Javascript ด้วยอักขระ UpperCase ได้อย่างไร
ดังนั้นฉันต้องการแยก:
'ThisIsTheStringToSplit'
เป็น
('This', 'Is', 'The', 'String', 'To', 'Split')
คุณแยกสตริงออกเป็นอาร์เรย์ใน Javascript ด้วยอักขระ UpperCase ได้อย่างไร
ดังนั้นฉันต้องการแยก:
'ThisIsTheStringToSplit'
เป็น
('This', 'Is', 'The', 'String', 'To', 'Split')
คำตอบ:
ฉันจะทำ.match()เช่นนี้:
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
มันจะสร้างอาร์เรย์ดังนี้:
['This', 'Is', 'The', 'String', 'To', 'Split']
แก้ไข:เนื่องจากstring.split()วิธีนี้ยังรองรับ regex จึงสามารถทำได้เช่นนี้
'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)
.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(" ")will output This Is 8 The St 3 To Split, ommitting the small case string ( ring) after 3.
อยู่นี่ไง :)
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(' ');