2016-05-10 8 views
10

Czy to możliwe, aby podzielić ciągi w JavaScript przez przypadku takim, że następujący ciąg poniżej (myString) zostanie przekształcony w tablicy (MyArray) poniżej:Jak podzielić ciąg znaków na wielkie i małe litery w JavaScript?

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

Próbowałem regex poniżej, ale to tylko podziały dla camelCase:

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

Seems być duplikatem http://stackoverflow.com/a/7599674/586030 –

+2

Wypróbuj to: '/ (?: [AZ] + | [^ AZ] +)/g' https://regex101.com/r/hR3kE3/1 –

+0

który działał idealnie, zeza - jednak nie mogę ustawić Q jako odpowiedzi, ponieważ opublikowałeś komentarz – Haloor

Odpowiedz

3

Innym sposobem, aby to zrobić, aby dodać znacznik, a następnie podzielić za pomocą tego znacznika, w tym przypadku punkt dwukrotnie wykrzyknika:

JsBin Example

var s = "HOWtoDOthis"; 

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

Dlaczego warto używać markera? –

Powiązane problemy