#javascript #regex
#javascript #регулярное выражение
Вопрос:
Мне нужно проверить номер улицы. Оно должно быть длиной не более 4, и первые 3 должны быть числом, а последним может быть буква (специальный символ не допускается). Буква не является обязательной. Пример 2, 34A, 45, 101 или 121B — все возможные числа. У меня есть это регулярное выражение, но у меня оно не работает. Кто-нибудь может мне помочь.
^[1-9]|[A-Za-z]{1,4}
Я ожидаю, что 2
, 34A
, 45
101
или 121B
все пройдут проверку регулярного выражения
Комментарии:
1. В качестве дополнительного примечания обязательно прочитайте эту статью об адресах.
2. Я думаю, еще одно требование заключается в том, чтобы оно не начиналось с нуля.
Ответ №1:
^[1-9]d{0,2}[A-Za-z]?$
Объяснение:
[1-9]
цифра от 1 до 9.d{0,2}
ноль или более (до 2) цифр.[A-Za-z]?
буква (необязательно)
В случае, если вы хотите разрешить 4-значные числа:
^[1-9]d{0,2}[A-Za-zd]?$
Комментарии:
1. Я бы добавил
^...$
, поскольку это для проверки.
Ответ №2:
Просто используйте ^[1-9]d{0,2}[A-Z]?$
Объяснение:
^
— начало строки
[1-9]
— совпадение с 1 по 9
d{0,2}
— сопоставьте ноль с двумя цифрами
[A-Z]?
— соответствует нулю или одной букве
$
— конец строки
Комментарии:
1. С помощью этого регулярного выражения числа могут начинаться с нуля.
2. @Marlaqk OP не указал, что это недопустимо
3. Это запрещает любой однозначный номер дома
4. Это не принимает строчные буквы и 4 цифры.
5. Кто сказал, что этого не должно быть? «Оно должно быть длиной не более 4, и первые 3 должны быть числом, а последним может быть буква […]» Это означает, что 4-й также может быть числом.