2011-10-25 42 views
46

Làm cách nào để bạn chia chuỗi thành một mảng trong Javascript bằng ký tự UpperCase?Chuỗi phân tách Javascript trên ký tự UpperCase

Vì vậy, tôi muốn chia:

'ThisIsTheStringToSplit' 

vào

('This', 'Is', 'The', 'String', 'To', 'Split') 
+0

Điều này có thể hữu ích cho một số người tìm kiếm giải pháp vấn đề này: http://stackoverflow.com/a/25732260/1454888 –

Trả lời

84

tôi sẽ làm điều này với .match() như thế này:

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g); 

nó sẽ làm cho một mảng như thế này:

['This', 'Is', 'The', 'String', 'To', 'Split'] 

chỉnh sửa: kể từ khi phương pháp string.split() cũng hỗ trợ regex nó có thể đạt được như thế này

'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters 

đó cũng sẽ giải quyết vấn đề từ nhận xét:

"thisIsATrickyOne".split(/(?=[A-Z])/); 
+35

Điều này sẽ không tìm thấy các ký tự chữ hoa đơn lẻ. Tôi đề nghị những điều sau đây: '" thisIsATrickyOne ".match (/ ([A-Z]? [^ A-Z] *)/g) .slice (0, -1)' – andrewmu

4

Ở đây bạn :)

var arr = UpperCaseArray("ThisIsTheStringToSplit"); 

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

Điều này cũng sẽ chia cho bất kỳ ',' nào ban đầu trong chuỗi ... – Matt

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

Điều này cũng sẽ xử lý các số .. kết hợp vào kết quả cuối cùng trong việc ghép tất cả các mục mảng vào một câu nếu đó là những gì bạn đang tìm kiếm

Các vấn đề liên quan