Angular 正则表达式测试输入的 ng-pattern 验证不一致

2023-12-02

我对我的输入进行了 ng 模式验证

ng-pattern="/^(.+)$/g"

这并不是每次都起作用。并表现出非常奇怪的行为。

See plnkr

ngMessage 仅在我输入的每两个字符上显示。但控制台正确评估正则表达式测试。

我在浏览器开发工具中的 Angular 行上设置了一个断点,用于测试正则表达式,并在控制台中进行了一些调试。这是我调试的控制台输出。当我使用控制台时,调试器没有移动,因此没有更改任何值。 (-> 代表我的输入,

-> regexp.test(viewValue)
<- false

-> regexp
<- /^(.+)$/g

-> /^(.+)$/g.test(viewValue)
<- true

-> regexp.test(viewValue)
<- true

有人能告诉我发生了什么事吗?请注意 regexp.test(viewvalue) 首先为 false,然后在最后一次测试中为 true,没有任何更改。


您必须删除/g从正则表达式,看到更新了笨蛋.

根据docs:

Note:避免使用gRegExp 上的标志,因为它将导致每个连续搜索从最后一个搜索匹配的索引处开始,因此不会考虑整个输入值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 正则表达式测试输入的 ng-pattern 验证不一致 的相关文章

随机推荐