2014-02-20 2 views
1

Я пытаюсь использовать регулярное выражение, чтобы разделить строку на символы верхнего регистра, но также изолировать их от строчных символов или цифр.Javascript, разделить строку в верхнем регистре и выделить верхний регистр

то, что я пытаюсь взять строку, как это:

"This is a Test STring"

и разделить его в массив, как это:

("T", "his is a ", "T", "est ", "S", "T", "ring")

я пытался для корректировки регулярного выражения, аналогичного тому, которое приведено в этом примере:
match(/[A-Z]?[^A-Z]*)+/g).slice(0,-1)

ответ

0

Вы могли окружить прописные со строкой неожиданных персонажей, а затем разделить на этой строке символов:

var s = "This is a Test STring"; 

var array = s.replace(/([A-Z])/g, '___$1___').split('___'); 
+0

Мне нравится это решение, потому что тогда вам не нужно беспокоиться о том, как обрабатывать неалфавитные символы в другом месте вашей строки – Homeone9

3

Вы могли бы использовать это регулярное выражение:

([A-Z]|[a-z ]+) 

Работа регулярок пример:

http://regex101.com/r/lH6hB0

Javascript:

var str = "This is a Test STring"; 
var res = str.match(/([A-Z]|[a-z ]+)/g); 

Результат res будет массив со значениями :

"T", "his is a", "T", "est", "S", "T", "ring" 
+1

подправил его немного обратиться к номерам '([AZ] | [ a-z0-9] +) ' – Homeone9

+0

Для * ничего * это не cap:' \ W | [a-z0-9_] ', поэтому для этого:'/[AZ] | \ W | [a-z0 -9_] +/g' - http://jsfiddle.net/mhfaust/Z88XN/ – Faust

Смежные вопросы