如何在AngularJS的文本字段中验证IP?目前,我正在使用此代码,但并非在所有情况下都有效。任何想法 ?
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语句。否则,正则表达式将太复杂。
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](http://jsfiddle.net/9Ymvt/2174/)**
**[Fiddle](http://jsfiddle.net/9Ymvt/2174/)**
[编辑]
最好的选择是创建指令,例如: <ip-input>
<ip-input>