Разделить строку регулярного выражения 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 ".

- Виктор Стрибьев

Другие вопросы по тегам