Target1
@Target1

Почему не работает правильно регулярное выражение?

Есть такая регулярка.

\b^[1|3|5][a-zA-Z0-9][^O0]{3,10}\b

Она проверяет слово на то что может начитаться только с 1,3,5, может содержать в себе цифры и буквы кроме 0 и О с размером с 3 до 10.
Она работает ПОЧТИ правильно.Проблема в том что, когда ставишь на второе элемент после цифр(1,3,5) ( 0 или О) она проходит валидацию, если поставить в других местах то будет работать как надо.
В чем может быть проблема ?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@dodo512
/^[135]((?![o0])[a-z\d]){3,10}$/i
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dmitriyuvin
FullStack developer ( Laravel & Vue )
Так у вас вторым символом может быть 0 ( ноль ) или О ( буква О ).
a-z и A-Z сюда входит О и о.
0-9 сюда входит 0, поэтому и проходит.

\b^[1|3|5][a-zA-Z0-9[^O0]]{3,10}\b

Попробуйте вот так
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Исключаем O, o и 0 из списка разрешенных символов - получается вот:
\b^[135][a-np-zA-NP-Z1-9]{3,10}\b
Ответ написан
Ваш ответ на вопрос

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

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