2016-11-16 23 views
0

自分の要件に合った正規表現があります。ここでは、この正規表現を制限して、0〜15文字しか使用できないようにしたいと考えています。だから私は$scope.pa = /^([\[email protected]#\$]+){0,15}$/i; に変更しましたが、0〜15文字の制限が働いていません。Angularjs正規表現で文字数を制限する

<!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 = /^([\[email protected]#\$]+)$/i; 

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

'/^[!\ W \ - 〜@#\ $] {0,15} $/I;' – Tushar

+0

Tushar、うまく動作し、問題を解決しました –

答えて

2

今、私はそれだけで0〜15文字を許可することができるように、この正規表現を制限したいです。

あなたは[]なく グループ() 文字クラスに範囲制限を適用する必要があり、これを達成するために。

今度はグループ/^([\[email protected]#\$]+){0,15}$/iに適用しました。は無限の文字を0〜15回繰り返しています。これは、範囲制限を無用にします。

したがって、{0,15}[\[email protected]#\$]後に来るべきで、あなたの正規表現は次のようになります。

/^([\w\[email protected]#\$]{0,15})$/i;

関連する問題