【发布时间】:2019-03-22 09:59:09
【问题描述】:
以下正则表达式在 HTML 中确实有效,如下例所示:
<input type="text" formControlName="mgmtIP" class="input-text" pattern="([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])">
但如果我想将该模式放入 FormGroup 中,验证器将无法识别:
mgmtIP: [host.mgmtIP, [
Validators.required,
Validators.pattern(/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/)
]],
我试着把它放在一个字符串中,去掉^和$。那也没用
【问题讨论】:
-
在
/.../正则表达式文字中使用单个反斜杠。Validators.pattern(/^(?:[01]?\d\d?|2[0-4]\d|25[0-5])(?:\.(?:[01]?\d\d?|2[0-4]\d|25[0-5])){3}$/) -
@WiktorStribiżew 也不起作用。我认为验证器甚至没有被应用程序识别。
-
我会说你实际上必须删除那些。
-
@Antoniossss 我尝试了 Wiktor 给我的例子。它没有用。
-
验证同时适用于 HTML 模式和
Validators.pattern()。同时使用/的反斜杠或“字符串”适用于Validators.pattern()。 @N。 Richli,如果您仍然遇到问题,请在 stackblitz 上创建一个示例。
标签: regex angular validation