2016-08-01 4 views
2

So deaktivieren Sie Sonderzeichen in eckigen js-Eingabetag. erlauben nur alphanumerische wie wirWie Sonderzeichen in winkeligen Js-Eingabe-Tag zu deaktivieren. Nur alphanumerisch zulassen

<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

bitte helfen Sie mir. wie kann ich es tun. Ich benutze bereits ng-pattern = "/^[a-zA-Z0-9] * $ /". Aber es erlaubt in Eingabetext. Ich möchte Sonderzeichen ausschließen. Danke für Advance –

+1

Die tatsächliche pancard Regex ist 5 Zeichen 4 Ziffern und ein abschließendes Zeichen. Habe eine Antwort unten aktualisiert. – mayankbatra

Antwort

2

verwenden Sie die folgende

-Controller

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

zu ermöglichen, nur verwenden HTML

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

Dank Man .. Seine Arbeiten (Sie sind awsome) –

+0

@ ved-prakash Können Sie die Antwort akzeptieren, wenn dies funktioniert. – mayankbatra

+0

Ja, ich akzeptierte diese Antwort und auch ich habe Ihren Code in mein Projekt **** Vielen Dank ***** –

1

Satzmuster alphanumerische

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

können Sie Regex mit Ng-Muster verwenden und Display die Nachricht über ng-Nachricht

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

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

zeigen Nachricht über ng-Nachricht

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

ODER

Die beste Option ist die Verwendung von Direktiven

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

ist es so komplizierter. Ich habe ng-pattern = "/ [A-Z] {5} \ d {4} [A-Z] {1}/i" es ist eine richtige PAN-Karte Number (regularyExpression) .. ans von liberalTGM –

+0

Die Anweisung funktioniert wie Magie! – Raptor

+0

Um Umlaute und andere akzentuierte Zeichen (Diakritika) zuzulassen, verwenden Sie in der Anweisung '/ [^ A-zÀ-∞ \ s]/gi'. –

3

Verwendung ng-pattern="/[A-Z]{5}\d{4}[A-Z]{1}/i" in Ihrem HTML-Input-Tag

+0

Ich habe diesen Code bereits gemacht –

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> 
Verwandte Themen