@sergeyviktorovich

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

Так не работает: new RegExp('^[a-z\s-]+$','g').test(value);.

А вот так с пробелом можно: new RegExp('^[a-z -]+$','g').test(value).
  • Вопрос задан
  • 81 просмотр
Решения вопроса 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)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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