Javascript 如何在文本字段AngularJS中验证IP

Javascript 如何在文本字段AngularJS中验证IP,javascript,angularjs,angular-ui,Javascript,Angularjs,Angular Ui,如何在AngularJS中验证文本字段中的IP?目前我正在使用此代码,但它不是在所有情况下都有效。有什么想法吗 ng模式='/^(([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]?

如何在AngularJS中验证文本字段中的IP?目前我正在使用此代码,但它不是在所有情况下都有效。有什么想法吗

ng模式='/^(([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
语句。否则正则表达式将过于复杂

观察者示例:


演示

[编辑]

最好的办法是创建指令,比如:


此示例可能有助于如何为自定义输入创建指令:

在哪些情况下失败?可能有助于您@musicaly\u但它接受0.0.0和255.255.255.255。我认为不应该。哈里克里希南:我觉得它们看起来像是有效的IP地址。这是您要排除的唯一两个地址吗?是的,但您不能将其分配给单个主机。因此,我不能让用户输入它。您可以将此功能放在角度函数中,而不是在控制器中添加手表,并将其用作ng change指令中的表达式。@Ronald91当然,指令方式更合适,类似于
。但regex验证也是如此。我只为演示添加了watcher。顺便说一句,这是我曾经用
$parsers
编写的一个示例:
$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
        }
    })