Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将正则表达式从指令传递到输入AngularJs_Javascript_Angularjs_Regex_Ng Pattern - Fatal编程技术网

Javascript 如何将正则表达式从指令传递到输入AngularJs

Javascript 如何将正则表达式从指令传递到输入AngularJs,javascript,angularjs,regex,ng-pattern,Javascript,Angularjs,Regex,Ng Pattern,我有这个指令 angular.module('tutors.components') .directive('formValidator', function() { return { restrict: 'A' link: function (scope, element, attrs) { function nameValidator (input) { var regExp : "/^[a-zA-Z']*$

我有这个指令

angular.module('tutors.components')
  .directive('formValidator', function() {
    return {
      restrict: 'A'      
      link: function (scope, element, attrs) {
        function nameValidator (input) {
          var regExp : "/^[a-zA-Z']*$/";
          var validator : regExp.test(input);
          return validator;
        }  
      };
    });
这个html

    <input form-Validator
           type="text"
           required
           name="firstName"
           class="form-control"
           ng-maxlength="20"
           placeholder="First name"
           ng-model="user.firstName"
           ng-disabled="vm.isLoading"
           tooltip="{{requiredMsg}}"
           tooltip-placement="top"
           tooltip-trigger="focus"
           tooltip-enable="signupForm.firstName.$error.required && signupForm.firstName.$touched">


我想运行指令,以便它验证输入中输入的文本,我曾尝试使用类似以下ng模式的ng模式=“/[a-zA-Z]+/”,但这不起作用(我仍然更喜欢使用它而不是指令)

您的指令应该具有小写
表单验证程序
,以获得编译器对指令的调用

此外,您需要将
名称验证程序
功能代码更改为以下内容

.directive('formValidator', function() {
  return {
    restrict: 'A',
    require: 'ngModel', //to get ngModelController
    link: function(scope, element, attrs, ngModel) {
      function nameValidator(input) {
          var regExp = "/^[a-zA-Z]$/";
          var validator = regExp.test(input);
          return validator;
      }
      ngModel.$validators.push(nameValidator); //should pushed to validators to validate
    }
  }
})
或者
ng模式
应该可以,只是它应该有
^
(开始)和
$
(结束)


也许我遗漏了一些东西,但您在链接函数中定义了nameValidator,但从未对任何东西调用它。代码段和演示不同步。
ng-pattern="/^[a-zA-Z]*$/"