[英]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.