2016-05-10 17 views
10

Có thể chia Strings trong JavaScript bằng trường hợp như vậy mà các chuỗi sau bên dưới (myString) sẽ được chuyển đổi thành các mảng (myArray) dưới đây:Làm thế nào để tách một chuỗi bằng chữ hoa và chữ thường trong JavaScript?

var myString = "HOWtoDOthis"; 
var myArray = ["HOW", "to", "DO", "this"]; 

Tôi đã thử regex dưới đây, nhưng nó chỉ chia cho camelCase:

.match(/[A-Z]*[^A-Z]+/g); 
+0

vẻ là bản sao của http://stackoverflow.com/a/7599674/586030 –

+2

Hãy thử: '/ (?: [AZ] + | [^ AZ] +)/g' https://regex101.com/r/hR3kE3/1 –

+0

hoạt động hoàn hảo, tuy nhiên, tôi không thể đặt Q được trả lời khi bạn đăng nhận xét – Haloor

Trả lời

8

([A-Z]+|[a-z]+). Phù hợp với tất cả các trường hợp trên, hoặc tất cả các trường hợp thấp hơn nhiều lần trong nhóm chụp. Cung cấp cho một này thử ở đây: https://regex101.com/r/bC8gO3/1

3

Một cách khác để làm điều này là để thêm vào một dấu hiệu và sau đó tách bằng dấu rằng, trong trường hợp này một điểm đúp chấm than:

JsBin Example

var s = "HOWtoDOthis"; 

var t = s.replace(/((?:[A-Z]+)|([^A-Z]+))/g, '!!$&').split('!!'); 
+1

Tại sao lại sử dụng điểm đánh dấu? –

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