【问题标题】:How do I get this custom validator to work?如何让这个自定义验证器工作?
【发布时间】:2018-12-14 16:54:38
【问题描述】:

自定义验证器模式有问题。成功验证的基本要素应该是 1) 开头至少 1 个数字 2) 数字后面的空格 3) 至少 1 个代表街道名称的字母字符。除此之外的任何附加内容仍应验证为真实。

this.myForm = this.fb.group({
      street:['',[Validators.required, Validators.pattern(/^\d+\s*[a-zA-Z].*$/ig)]],
      city:['',Validators.required],
      state: ['', Validators.required],
      zip:['',Validators.required],
      notes:[''],
    })

44 North Road #12 验证但 44 North Road #123 不验证。基本上在我输入44 North Road 之后,输入的每个其他字符(无论它是什么)都会使其验证失败,直到输入后续字符,然后在输入下一个字符时再次失败。当我添加字符时,它只是在无效和有效之间来回切换。

我做错了什么?

【问题讨论】:

    标签: angular angular-reactive-forms angular-forms


    【解决方案1】:

    我相信你的正则表达式有点不对劲。这是一个符合您的条件的更简单的表达式:

    ^\d+\ [A-Za-z].*$
    
    • \d+:一位数
    • \\ 后面的空格):空格
    • [A-Za-z]:一个字母字符
    • .* 其他任何东西

    您可以在here 中看到它,我在其中围绕您的 3 个特定条件添加了捕获组。

    【讨论】:

    • 我认为这可能是一个错误角度验证器的工作原理。它仍在做同样的事情。
    • 没关系,我现在开始工作了。最后有 /ig ,这把事情搞砸了。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 2012-04-20
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多