使用自定义验证器模式时遇到麻烦。成功验证的基本要素应为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
后,键入的所有其他字符(无论是什么字符)都会使其验证失败,直到输入下一个字符,然后在键入下一个字符时再次失败。当我添加字符时,它只是在无效和有效之间来回乒乓球。
我在做什么错了?
答案 0 :(得分:1)
我相信您的正则表达式有些不足。这是一个符合您条件的简单表达式:
^\d+\ [A-Za-z].*$
\d+
:一位数字\
(\
之后的空格):空格[A-Za-z]
:一个字母字符.*
其他您可以在操作here中看到它,在这里我围绕您的3个特定条件添加了捕获组。