@KononovD

Как передать регулярное выражение в атрибут pattern инпута?

Добрый вечер, у меня есть компонент инпута. В этом классе есть поле со всеми нужными мне регулярными выражениями:
regexp = {
    username: /^[a-zа-я0-9_-]{2,16}$/,
    password: /^.{6,18}$/,
    email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
    noRegexp: /./
  }


дальше я беру эти регулярки и вставляю их в атрибут pattern инпута:

<input
          ...={ ... }
          pattern={ this.regexp[regexpName].toString().replace( /\//g, '' ) }
          ...={ ... }
        />

Насколько я понимаю, pattern принимает строку, а не регулярку. отсюда .toString(), а потом методом тыка выяснилось, что с обратными слешами, первым и последним, регуляки не работают ( поле всегда выдает ошибку ), отсюда .replace( /\//g, '' )

И вот я хочу узнать как быть, если у меня в самом регулярном выражении есть обратные слеши? Может написать регулярку, которая будет убирать только первый и последнии слеши?
Подскажите.
Спасибо
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Может написать регулярку, которая будет убирать только первый и последнии слеши?

Зачем здесь регулярные выражения? Вы знаете, что лишними в строке являются первый и последний символы - ну так может, их и отрезать?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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