Разделить строку регулярного выражения JS на верхний, а затем на нижний регистр
У меня есть длинные переменные статьи javascript, которые я пытаюсь разбить, где строчные буквы сразу же следуют за заглавными
Используя регулярные выражения, я попытался:
var article2 = article2.split(/(?=[A-Z][a-z])/);
но удалось разделить только на каждое слово
3 ответа
Поскольку ваша среда JS совместима с ECMAScript 2018 (посмотрите, какие функции регулярного выражения она поддерживает), вы можете использовать lookbehinds:
.split(/(?<=[a-z])(?=[A-Z])/)
(?<=[a-z])
шаблон представляет собой вид сзади, который требует цифры непосредственно слева от текущего местоположения и (?=[A-Z])
является положительным прогнозом, который требует цифры непосредственно справа от текущего местоположения.
Смотрите демо-версию регулярного выражения.
var article2 = "SplitJavaScriptString";
// you are doing this (include Small case & Upper case)
console.log(article2.split(/(?=[A-Z][a-z])/));
// is this what you want (exclude Small case & Upper case)
console.log(article2.split(/[A-Z][a-z]/).filter(e => e != ''));
"Если строчные буквы следуют за прописными, вам нужно
.split(/(?<=[a-z])(?=[A-Z])/),
но он будет работать только в Chrome и Node.JS, которые соответствуют ECMAScript 2018 ".
- Виктор Стрибьев