2017-01-12 145 views
0

写作angularjs定制指令某些输入验证像不允许输入有超过10个字符,不允许输入有开头或结尾空格,写下面的代码Angularjs自定义指令验证

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个字符后键入,但它不适用于前导/尾随空格,我不确定我的正则表达式是否错误?

使用情况不为我工作的时候我之前和喜欢

空间空间空间字符串后一直空格的“Hello World”的空间空间空间

注:我只想要允许用户在字符串之间有空格,但不在字符串的开始和结尾处,我想在用户开始在输入框中输入时检查此内容

回答

0

AngularJS修剪输入默认情况下,所以你需要使用ng-trim =“false”来将前导和尾随空格传递给你的模式。 请参阅文档的详细信息doc

+0

即使它不起作用 – zumuhu