【问题标题】:Angularjs Custom Directive validationsAngularjs 自定义指令验证
【发布时间】:2017-05-26 23:34:57
【问题描述】:

为某些输入验证编写 angularjs 自定义指令,例如不允许输入超过 10 个字符,并且不允许输入有前导或尾随空格,编写如下代码

angular.module("angulareDir", [])
.directive("myDirective", function() {    
    return{
             restrict: 'A',
             link: function($scope, elem, attrs) {

                var reg = /^\s+|\s+$/g;

                angular.element(elem).on("keypress", function(e) {
                var eMessage = angular.element("#message-error");

                    if (elem.val().length >= 10) {
                       e.preventDefault();
                    }
                    if (reg.test(elem.val()) === true) {
                        eMessage.show();
                        e.preventDefault();
                    }
                });
             }
            };

});

它适用于值超过 10 个字符的输入,并且正如预期的那样不允许用户在 10 个字符之后输入,但它不适用于前导/尾随空格,我不确定我的正则表达式是否错误? ?

当我像

这样的字符串前后有空格时,用例对我不起作用

空间空间空间“你好世界”空间空间空间

注意:我只想让用户在字符串之间有空格,而不是在字符串的开头和结尾,我想在用户开始在输入框中输入时检查这一点

【问题讨论】:

    标签: javascript angularjs regex angularjs-directive


    【解决方案1】:

    AngularJS 默认会修剪输入,因此您需要使用 ng-trim="false" 将前导和尾随空格传递给您的模式。 详见文档doc

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多