Cómo restringir caracteres especiales en angularjs textbox

Quiero restringir los caracteres especiales en el textbox, es decir, si el usuario introduce caracteres especiales, no debe permitirlos ni mostrarlos en el textbox. Si alguien conoce la solución, por favor comenten.

enter image description here

respuesta encontrada:

app.directive('noSpecialChar', function() { return { require: 'ngModel', restrict: 'A', link: function(scope, element, attrs, modelCtrl) { modelCtrl.$parsers.push(function(inputValue) { if (inputValue == null) return '' cleanInputValue = inputValue.replace(/[^\w\s]/gi, ''); if (cleanInputValue != inputValue) { modelCtrl.$setViewValue(cleanInputValue); modelCtrl.$render(); } return cleanInputValue; }); } } }); 

con la siguiente directiva, los caracteres especiales no se pueden insert …

Esto se puede lograr con el uso de directivas. NgModelController proporciona $parsers , podemos agregar un analizador que escanea y elimina los caracteres especiales (si los hay) del valor de input y almacena el valor modificado nuevamente en ng-model mientras se muestra el mismo en la vista.

He creado una directiva. Incluye esta directiva en tu aplicación.

  app.directive('noSpecialChar', function() { return { require: 'ngModel', restrict: 'A', link: function(scope, element, attrs, modelCtrl) { modelCtrl.$parsers.push(function(inputValue) { if (inputValue == null) return '' cleanInputValue = inputValue.replace(/[^\w\s]/gi, ''); if (cleanInputValue != inputValue) { modelCtrl.$setViewValue(cleanInputValue); modelCtrl.$render(); } return cleanInputValue; }); } } }); 

Luego puede usarlo en el elemento de input de text para evitar los caracteres especiales.

Nota : debe agregarlo en el campo de input como no-special-char

Ejemplo: <input type="text" no-special-char ng-model="username">

Ver Plnkr

Puede usar ng-pattern con esta expresión regular /^[a-zA-Z0-9]*$/ .

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

La validation será falsa