Проблемы при одновременном применении шаблона для ограничения диапазона и конкретных символов - PullRequest
1 голос
/ 25 апреля 2019

Мне нужно применить шаблон к одному из моих полей в коде angularjs. Для этого необходимо выполнить следующие условия:

Значение должно быть длиной от 1 до 50 символов. Имя может содержать только> буквы, цифры, точки, дефисы и подчеркивания. Имя должно начинаться и заканчиваться> буквой или цифрой.

Я пробовал этот шаблон /^[a-zA-Z0-9][a-zA-Z0-9-_.]{0,48}[a-zA-Z0-9]$/

Хорошо работает для всех остальных условий, кроме как для приема не менее двух> символов.

Я перепробовал много вариантов, но либо диапазон скомпрометирован, либо я столкнулся с проблемой ограничения дефисов и подчеркиваний при запуске. Любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете использовать это регулярное выражение,

^[a-zA-Z0-9](?:[\w.-]{0,48}[a-zA-Z0-9])?$

Пояснение:

  • ^ - соответствует началу строки
  • [a-zA-Z0-9] - начинается сопоставление с алфавитом или цифрой
  • (?: - начало шаблона не группирования
  • [\w.-]{0,48}[a-zA-Z0-9] - Следующие совпадения могут быть алфавитами, цифрами, точками, подчеркиванием и дефисом, но последним символом должен быть алфавит или цифра
  • )? - Шаблон без группы закрыт, и ? делает его необязательным, чтобы разрешить использование только одного символа в качестве допустимой переменной
  • $ - конец строки

Regex Demo (Для упрощения демонстрации с помощью струн я уменьшил условие длины до 1-5 вместо 1-50, как было задано в вопросе)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...