如何在AngularJS的文本字段中验证IP?目前我正在使用此代码,但它并不适用于所有情况。任何想法 ?如何在文本字段中验证IP AngularJS
ng-pattern='/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/
如何在AngularJS的文本字段中验证IP?目前我正在使用此代码,但它并不适用于所有情况。任何想法 ?如何在文本字段中验证IP AngularJS
ng-pattern='/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/
用途:
/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/
匹配0.0.0.0通过255.255.255.255
如果你想删除0.0.0.0
和255.255.255.255
我建议你添加额外的if
声明。否则正则表达式会太复杂。
实施例与观察者:
$scope.ip = '1.2.3.4';
$scope.$watch(function() {
return $scope.ip;
},
function (newVal, oldVal) {
if (
newVal != '0.0.0.0' && newVal != '255.255.255.255' &&
newVal.match(/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/))
{
// Match attempt succeeded
} else {
// Match attempt failed
}
})
演示Fiddle
[编辑]
最好的办法是创建指令,是这样的:<ip-input>
这个例子可能有帮助如何为自定义输入创建的指令:format-input-value-in-angularjs
而不是在你的控制器中添加一个手表,你可以把这个功能放在一个角度函数中,并用它作为ng-change指令中的一个表达式。 – Ronald91 2014-08-28 13:20:02
@ Ronald91那么,肯定指令的方式是比较合适的,比如'
在哪些情况下是失败的? – 2014-08-28 12:08:09
可能会帮助你http://www.w3resource.com/javascript/form/ip-address-validation.php – Satpal 2014-08-28 12:08:50
@musically_ut它接受0.0.0.0和255.255.255.255。我认为它不应该。 – Harikrishnan 2014-08-28 12:09:58