Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

JS-split regex - включить сам разделитель в часть слева

Есть строка, например, "установить ВКЛ/ВЫКЛ".
массив_строки = строка.split('/(?=\/)|\s/')
в данном случае '/' оказывается в начале следующего элемента - '/ВЫКЛ'
Какой нужен regex для того, что бы появился следующий массив: ['установить', 'ВКЛ/', 'ВЫКЛ'] ?


Ответ

(?=\/) - положительный блок просмотра вперёд, тогда как тут пригодился бы блок предварительного просмотра назад, но регулярные выражения JavaScript не поддерживают его. (?<=\/)|\s+ - так бы оно выглядело в s.split()
Можно найти все совпадения символов, отличных от пробельных и символа косой черты, за которыми может находится 1 необязательный знак косой черты:
/[^\s\/]+\/?/g
Демо регулярного выражения. Перед / обязательно наличие непробельного символа, отличного от /
console.log( "установить ВКЛ/ВЫКЛ".match(/[^\s\/]+\/?/g) );

Комментариев нет:

Отправить комментарий