Javascript Angularjs正则表达式限制字符数问题
我有一个正则表达式Javascript Angularjs正则表达式限制字符数问题,javascript,angularjs,regex,ng-pattern,Javascript,Angularjs,Regex,Ng Pattern,我有一个正则表达式$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></tit
$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>
Pname:
请输入pname
var-app=angular.module(“app”,[]);
app.controller('controllerName',['$scope',函数($scope){
$scope.pname=“abcd267g”;
$scope.pa=/^([\w-~!@\\$]+)$/i;
}]);
现在我想限制这个正则表达式,使它只能允许0到15个字符
要实现这一点,您应该对字符类[]应用范围限制,而不是组()
现在您已经将其应用于整个组/^([\w-~!@\$]+{0,15}$/i
,它将重复无限个字符0到15次。这使得范围限制无效
因此,{0,15}
应该在[\w-~!@\\$]
之后,您的正则表达式将是:
/^([\w\-~!@\$]{0,15})$/i代码>
现在我想限制这个正则表达式,使它只能允许0到15个字符
要实现这一点,您应该对字符类[]应用范围限制,而不是组()
现在您已经将其应用于整个组/^([\w-~!@\$]+{0,15}$/i
,它将重复无限个字符0到15次。这使得范围限制无效
因此,{0,15}
应该在[\w-~!@\\$]
之后,您的正则表达式将是:
/^([\w\-~!@\$]{0,15})$/i代码>/^[\w\-~!@\\$]{0,15}$/i代码>Tushar,工作正常,解决了问题/^[\w\-~!@\\$]{0,15}$/i代码>Tushar,工作正常,解决了问题