Задать вопрос
@sergeyviktorovich

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

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

А вот так с пробелом можно: new RegExp('^[a-z -]+$','g').test(value).
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы