2016-08-01 61 views
2

如何禁用角度js输入标签中的特殊字符。只允许字母数字 就像我们使用如何禁用角度Js输入标签中的特殊字符。只允许字母数字

<input type="text" ng-trim="false" style="text-transform: uppercase" ng-pattern="/^[a-zA-Z0-9]*$/" class="form-text" id="pan_card_number" name="pan_card_number" ng-minlength="10" maxlength="10" required ng-model="registration.newTSP.panCardNumber"> 
+0

+0

任何人都请帮助我。我该怎么做。我已经在使用ng-pattern =“/^[a-zA-Z0-9] * $ /”。但它允许输入文本。我想拒绝特殊的字符。感谢提前 –

+1

实际的pancard正则表达式是5个字符4位数字和尾随字符。已经更新了下面的答案。 – mayankbatra

回答

2

使用以下

控制器

$scope.panCardRegex = '/[A-Z]{5}\d{4}[A-Z]{1}/i'; 

HTML

<input type="text" ng-model="abc" ng-pattern="panCardRegex" /> 
+1

感谢的人..它的工作(你是Awsome) –

+0

@ ved-prakash你能接受答案,如果这是工作。 – mayankbatra

+0

是的,我接受了这个答案,并且我把你的代码放在我的项目中****非常感谢***** –

1

固定的模式,只允许字母数字

/^[a-z0-9]+$/i 
6

你可以使用正则表达式与伍模式,并通过NG-消息通过NG-消息显示消息

$scope.useOnlySpecialCharacters = /^[a-zA-Z0-9]*$/; 

<input type="text" ng-model="specialcharacters" 
ng-pattern="useOnlySpecialCharacters" /> 

显示消息

<div ng-message="pattern"> Please Enter AlphaNumeric </div> 

OR

最好的选择是使用指令

app.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; 
     }); 
    } 
    } 
}); 

LINK

+0

其如此复杂。我使用了ng-pattern =“/ [A-Z] {5} \ d {4} [A-Z] {1}/i”它是一个合适的PAN卡Number(regularExpression).. ans by liberalTGM –

+0

这个指令的功能就像魔术一样! – Raptor

+0

为了允许元音变音和其他重音字符(Diacritics),在指令中使用'/ [^ A-zÀ-ÿ\ s]/gi'。 –

3

使用ng-pattern="/[A-Z]{5}\d{4}[A-Z]{1}/i"在HTML的输入标签

+0

我已经完成了这段代码 –

1
Use Directives to restrict Special characters: 

angular.module('scPatternExample', []) 
     .controller('scController', ['$scope', function($scope) { 
     }]) 
    .directive('restrictSpecialCharactersDirective', function() { 
     function link(scope, elem, attrs, ngModel) { 
       ngModel.$parsers.push(function(viewValue) { 
       var reg = /^[a-zA-Z0-9]*$/; 
       if (viewValue.match(reg)) { 
        return viewValue; 
       } 
       var transformedValue = ngModel.$modelValue; 
       ngModel.$setViewValue(transformedValue); 
       ngModel.$render(); 
       return transformedValue; 
       }); 
      } 

      return { 
       restrict: 'A', 
       require: 'ngModel', 
       link: link 
      };  
     }); 


    <input type="text" ng-model="coupon.code" restrict-Special-Characters-Directive>