AngularJS - 不应该开始的正则表达式&以空格结束,不应包含双引号(“)

时间:2016-09-24 12:42:52

标签: angularjs regex ng-pattern

我写过ng-pattern,不以空格开头和结尾。 并尝试在$ watch中匹配双引号。

但它不起作用。 ng-pattern也无效

我的ng-pattern是:

<input type="text" class="form-control" ng-model="wifiResult.ssid" 
     name="ssid"
     ng-class="{'inputError' : errorMsg}"
     ng-minlength="1"
     ng-maxlength="32"
     ng-pattern="/^[^\s]+(\s+[^\s]+)*$/"
     required >
JS中的$ watch是:

$scope.$watch('wifiResult.ssid', function(scope){
        var regexToRestrict = /^["]+$/;

        if(scope){
            var pressChar       = scope.slice(-1);
            if(pressChar.match(regexToRestrict)){
                scope   = scope.slice(0,-1); // try to replace " to blank
            }
            else{
                console.log('not matched');
            }
        }       
        else{
            console.log('no scope');
        }
    });

还有其他办法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以在html中将正则表达式更改为喜欢此ng-pattern='/^[^\\\\./:*?\"<>|][^\\\\/:*?\"<>|]{0,254}$/',以防止用户输入(“)输入和表单可能会抛出错误,说明输入无效。

在角度ng-trim中默认设置为true,因此在分配给ng-model之前,系统会删除用户输入周围的任何空白区域。

除非您希望每次用户尝试在输入字段中输入某个值时输入值(“)都是免费的,否则您不需要观察者。每次用户更改内容时都需要进行不必要的操作。” p>