Javascript Разделить строку на символы верхнего регистра - PullRequest
78 голосов
/ 25 октября 2011

Как разделить строку на массив в Javascript по символу UpperCase?

Итак, я хочу разделить:

'ThisIsTheStringToSplit'

в

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

Ответы [ 3 ]

149 голосов
/ 25 октября 2011

Я бы сделал это с .match() следующим образом:

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

он создаст такой массив:

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

edit: , так какstring.split() метод также поддерживает регулярное выражение, его можно достичь следующим образом:

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

, что также решит проблему из комментария:

"thisIsATrickyOne".split(/(?=[A-Z])/);
12 голосов
/ 15 июля 2016
.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"
6 голосов
/ 25 октября 2011

Вот вы:)

var arr = UpperCaseArray("ThisIsTheStringToSplit");

function UpperCaseArray(input) {
    var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
    return result.split(",");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...