2017-09-26 131 views
0

我想验证允许像[]^_,atoz,1到10个字符的特殊字符的文本框。使用ng-pattern =“/^[a-zA-Z0-9] * $ /“允许进入但不启用提交按钮。但问题是我们不应该允许用户输入特殊字符,尤其是重音符号(`):如何限制specail字符在使用角js的文本框中的严重口音(反向)

<input type="text" ng-pattern="/^[a-zA-Z0-9]*$/"> 

而且现在用下面的验证:

<input type="text" restrict="^[^a-zA-Z0-9]*$/"> 

好心帮me.thanks提前。

回答

0

您可以使用指令

directive('noSpecialChar', function() { 
      return { 
       require: 'ngModel', 
       restrict: 'A', 
       link: function(scope, element, attrs, modelCtrl) { 
        modelCtrl.$parsers.push(function (inputValue) { 

          if (inputValue == null) 
           return '' 
          var cleanInputValue = inputValue.replace(/[^\w\s]/gi, ''); 
          if (cleanInputValue != inputValue) { 
           modelCtrl.$setViewValue(cleanInputValue); 
           modelCtrl.$render(); 
          } 
          return cleanInputValue; 

        }); 
       } 
      } 
     }) 

HTML

<input type='text' no-Special-Char /> 
+0

嘿尝试这一个,它允许白space.i需要允许用户输入字母数字,特殊字符,如[] _ ^。没有白空格 –

+0

你可以从这行删除所有你想允许的字符var cleanInputValue = inputValue.replace(/ [^ \ w \ s]/gi,''); –