ng-pattern In Angular JS для проверки IP-адреса

0

Я пытаюсь проверить IP-адрес в текстовом поле с помощью ng-pattern

КОД:

<input name="machinestodiscover" type="text" ng-model="machinestodiscover" ng-minlength="7" ng-maxlength="15" ng-pattern="/\b([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})\b/" required>
 <span ng-show="conditionForm.machinestodiscover.$error.required" class="help-block" style="display:inline;">*Machines To discover Required</span>
 <span ng-show="conditionForm.machinestodiscover.$error.pattern" class="help-block" style="display:inline;">*IP Pattern Wrong.</span>

Проблема, с которой я сталкиваюсь, заключается в том, что она даже принимает значение как 1.1.1.1.1.1.1.

где, когда я проверил выражение в http://regexr.com/

Скриншоты:

Изображение 174551

Изображение 174551

Изображение 174551

Что не так в моем regex/ng-pattern

1 ответ

2

Проблема заключается в том, что \b является границей слов. То есть . также соответствует границам слов.

Вместо этого используйте якоря,

^([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})$
  • ^ Закрепляет регулярное выражение в начале строки.
  • $ Закрепляет регулярное выражение в конце строки

Демо-версия Regex

  • 0
    Идеальный RegEx. Кроме того, чтобы сделать проверку IP-адреса более надежной, необходимо выполнить проверку диапазона для каждого сегмента адреса IPv4, т. Е. Проверить, что каждый сегмент адреса находится в диапазоне от 0 до 255 (оба конца включительно)!
  • 0
    regex101.com/r/HBTDi1/1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню