限于只写在角A-Z [英] Limited to write only a-z in angular

查看:115
本文介绍了限于只写在角A-Z的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想让用户只写英文字母不是数字或任何语言。
这里是我的小提琴:演示,但它不工作。

I want to let user to write just english character not number or any languages . here is my fiddle : Demo but it's not working .

app.directive('validcharEn', function () {
    return {
        require: '?ngModel',
        link: function (scope, element, attrs, ngModelCtrl) {
            if (!ngModelCtrl) {
                return;
            }

            ngModelCtrl.$parsers.push(function (val) {
                if (angular.isUndefined(val)) {
                    var val = '';
                }
                var clean = val.replace(/[^a-z]/g, '');
                var decimalCheck = clean.split('.');
                if (!angular.isUndefined(decimalCheck[1])) {
                    decimalCheck[1] = decimalCheck[1].slice(0, 2);
                    clean = decimalCheck[0] + '.' + decimalCheck[1];
                }

                if (val !== clean) {
                    ngModelCtrl.$setViewValue(clean);
                    ngModelCtrl.$render();
                }
                return clean;
            });

            element.bind('keypress', function (event) {
                if (event.keyCode === 10) {
                    event.preventDefault();
                }
            });
        }
    };
});  

我这么想吗?

推荐答案

这个怎么样:小提琴 ,清洁,做到这一点最简单的方法。

How about this : Fiddle , clean and simplest way to do it .

app.directive('validEn', function() {
  return {
    require: '?ngModel',
    link: function(scope, element, attrs, ngModelCtrl) {
      if(!ngModelCtrl) {
        return; 
      }

      ngModelCtrl.$parsers.push(function(val) {
        var clean = val.replace( /[^a-z]+/g, '');
        if (val !== clean) {
          ngModelCtrl.$setViewValue(clean);
          ngModelCtrl.$render();
        }
        return clean;
      });

      element.bind('keypress', function(event) {
        if(event.keyCode === 32) {
          event.preventDefault();
        }
      });
    }
  };
});

HTML

<input type="text" ng-model="employee.age" valid-en />

更新结果
或者电子邮件输入:

Update
or maybe for email input :

小提琴

Fiddle

var clean = val.replace( /[^0-9+.+a-z+@]+/g, '');

希望这有助于

这篇关于限于只写在角A-Z的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆