繁体   English   中英

AngularJS正则表达式限制字符数问题

[英]Angularjs regular expression to restrict number of characters issue

我有正则表达式$scope.pa = /^([\\w-~!@#\\$]+)$/i ,它可以很好地满足我的要求。 现在,我想限制此正则表达式,以便它只能包含0到15个字符。 因此,我将其更改为$scope.pa = /^([\\w-~!@#\\$]+){0,15}$/i; 但是0到15个字符的限制无法解决。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
</head>
<body ng-app="app">
    <div ng-controller="controllerName">
        <ng-form name="mailForm">
             Pname: <input type="text" ng-model="pname" name="pname" ng-pattern="pa" /><br />
            <span ng-show="mailForm.pname.$error.pattern" style="color:red">Please enter pname</span>


        </ng-form>
    </div>
    <script>
    var app = angular.module("app", []);
    app.controller('controllerName', ['$scope', function ($scope) {
         $scope.pname = "abcd267g";
           $scope.pa = /^([\w-~!@#\$]+)$/i;

          }]);
</script>
</body>
</html>

现在,我想限制此正则表达式,以便它只能包含0到15个字符。

为此,您应该在字符类[]而非组()上应用范围限制。

现在,您已将其应用于整个 /^([\\w-~!@#\\$]+){0,15}$/i ,它将重复无穷字符0至15次。 这使得范围限制无效。

因此, {0,15}应该在[\\w-~!@#\\$]并且您的正则表达式将为:

/^([\\w\\-~!@#\\$]{0,15})$/i;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM