gpt4 book ai didi

javascript - Angularjs ng-pattern 奇怪的行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:10 25 4
gpt4 key购买 nike

我一直在研究一种接受 Twitter 参数(例如 # 和 @ 以填充 Twitter 提要)的表单。

对于 Angular.js,我计划使用内置的 ng-pattern指令在保存之前验证输入,但是验证的行为非常奇怪。它在键入时将输入的每第二个字符的“有效”字符串标记为无效。

很难解释确切的行为,所以这里是 Plunker .

为了完整起见,我将在我的输入字段中添加奇怪的 ng-pattern这里:

<input type="text" ng-pattern="/(^|\s)@(\w+)|(^|\s)#(\w+)/g" ng-model="foo" name="foo"/>

最佳答案

是因为g选项全局匹配,去掉就可以了。

多次调用testexec involves state :

As with exec (or in combination with it), test called multiple times on the same global regular expression instance will advance past the previous match.

基本上它正在尝试继续进行另一场比赛,但找不到:

a = /@(\w+)$/g;
> /@(\w+)$/g
a.exec("@test")
> ["@test", "test"]
a.exec("@test")
> null

关于javascript - Angularjs ng-pattern 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18961782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com