Я пытаюсь проверить 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/
Скриншоты:
Что не так в моем regex/ng-pattern
Проблема заключается в том, что \b
является границей слов. То есть .
также соответствует границам слов.
Вместо этого используйте якоря,
^([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})$
^
Закрепляет регулярное выражение в начале строки.$
Закрепляет регулярное выражение в конце строки