#javascript
#javascript
Вопрос:
Я должен проверить строку, которая может
- Начинается и заканчивается цифрами или буквами.
- должно содержать только строчные буквы, цифры, тире
(-)
, подчеркивания(_)
и точки. - должно содержать символы
3
to63
. Имена, содержащие точки, могут содержать до222
символов, но каждый разделенный точками компонент не может быть длиннее63
символов. - не может быть IP-адресом
- не удается начать с префикса
"AABRA"
Я написал некоторое выражение, но оно проверяет только строку, начинающуюся с алфавита и числа, строка может содержать только перечисленные выше специальные символы
^[a-z0-9][-_. a-z0-9] [a-z0-9]$
Но как я могу проверить строку типа "abc.bys.123123"
, где длина слова между .
должна составлять от 3 до 63
Комментарии:
1. Есть ли реальная необходимость пытаться втиснуть все это в одно регулярное выражение? Является ли регулярное выражение единственным, что у вас есть в этой среде, или вы можете выполнить дополнительное кодирование на JS?
2. {3,63} содержит от 3 до 63 символов, существует аналогичное выражение для выражения до 222 символов.
3. Я не понимаю, как «имена, содержащие точки, могут содержать до 222 символов» и что строка «должна содержать от 3 до 63 символов».
4. Общая длина строки не должна превышать 222 символов. Строка «aaaaaaaaaaaaaa.bbbbbbbbbbbbb.cccccccccccccc», здесь длина подстроки aaa или bbb или ccc должна составлять от 3 до 63, но в целом общая длина должна быть не более 222.
5. Так понятнее. И можете ли вы ответить на вопрос @ 04FS? Вы можете использовать только шаблон регулярных выражений по некоторым причинам или вы также можете использовать javascript?
Ответ №1:
Для m-n повторений используйте {m, n}. Таким образом, регулярное выражение будет ^[a-z0-9][-_. a-z0-9]{3,63}[a-z0-9]$
Редактировать: не совсем то, о чем вы просите. Но это должно помочь с правильной реализацией. Чтобы изучить регулярное выражение, попробуйте это https://regexone.com /
Ответ №2:
Попробуйте приведенное ниже регулярное выражение
^([a-z d][-_. a-z0-9]([a-z d] )){3,63}$
Протестировал упомянутые вами случаи
Комментарии:
1. «попробуйте это» не является полезным объяснением вашего решения.
2. регулярное выражение не проверяет длину подстроки между точкой(.) Например «ааааааааааааааааааааааааа.bbbbbb_-bbbbbbbbbb.cccccccc». в этом примере подстрока «aaaaa» может содержать более 63 символов.