@Galdar
Web, JS, PHP, NGINX, Linux

Почему регулярка так работает?

var symbol = "s cchh'shchcz'' ";

console.log(symbol.split(/(sh|sch|ch|cz|yu|ya|yo|zh|''|'|.)/))

[
  '', 's',  '', ' ',  '', 'c',
  '', 'ch', '', 'h',  '', "'",
  '', 'sh', '', 'ch', '', 'cz',
  '', "''", '', ' ',  ''
]


Ставит пустые значения в массиве через один символ, почему так?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Потому что она написана у вас так =)

/(sh|sch|ch|cz|yu|ya|yo|zh|''|'|.)/
                                ^
                             // └ Сопоставляется с любым символом

Вот так работает корректно
/(sh|sch|ch|cz|yu|ya|yo|zh|''|')/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы