@sergeyviktorovich

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

так не работает
new RegExp('^[a-z\s-]+$','g').test(value);
а вот так с пробелом можно
new RegExp('^[a-z -]+$','g').test(value)
  • Вопрос задан
  • 61 просмотр
Решения вопроса 3
WblCHA
@WblCHA
Экранируй \ перед s. А ещё лучше по человечески регексп напиши.
/^[a-z\s-]+$/g.test(value);
Ответ написан
dyuriev
@dyuriev
A posteriori
new RegExp('^[a-z\\s-]+$','g').test(value);

обратный слэш как и любой другой спецсимвол экранируется обратным слэшем, пардон за тавтологию
Ответ написан
@kar1m
потому что у вас регулярка в виде строки оформлена, а в js строках \ - это символ экранирования, поэтому нужно писать так
new RegExp('^[a-z\\s-]+$','g').test(value);
или можете писать так
/^[a-z\s-]+$/g.test(value)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽
01 мар. 2021, в 10:03
2000000 руб./за проект
01 мар. 2021, в 09:29
1 руб./за проект