AngularJS - 一个输入字段中的动态验证

时间:2017-07-28 21:29:32

标签: javascript angularjs regex

我需要能够根据以下功能验证输入:

有两种类型的ID:

A型:

12345678

45355678

53242234

B类:

12345678-A1

32454353-A1

32454353-B1

正如您所看到的,类型A只有数字而类型B的数字后跟连字符,然后是字母值和数字值(序列是严格的)。

所以我需要做的是创建第二个正则表达式以验证B类ID,但我甚至不知道如何开始。

这是指令:

app.directive('codeType', function() {
    return {
    scope: {
    codeType: '='
    },
    require: 'ngModel',
    link: function(scope, element, attr, ngModelCtrl) {
    function codeTypeA(text) {

    if (text) {
      var transformedInput
      if (!scope.codeType) {
        transformedInput = text.replace(/[^1-9]/g, '');
      } else {
        // Type B code regex
        transformedInput = text.replace(/[^1-9]/g, '');
      }


      if (transformedInput !== text) {
        ngModelCtrl.$setViewValue(transformedInput);
        ngModelCtrl.$render();
      }
      return transformedInput;
    }
    return undefined;
  }
  ngModelCtrl.$parsers.push(codeTypeA);
    }
    }
 });

Plunker here

p.s。 这是验证两种类型值的好方法吗?有更好的解决方案吗?

0 个答案:

没有答案