Javascript正则表达式返回true ..然后是false ..然后是true ..等等

Javascript正则表达式返回true ..然后是false ..然后是true ..等等,第1张

Javascript正则表达式返回true ..然后是false ..然后是true ..等等

/^^-_[^-_]$/gi;

您正在使用

g
(全局)
RegExp
。在Javascript中,全局正则表达式处于状态:您第一次调用它们(使用
exec
test
等等),您将在给定字符串中获得第一个匹配项。再次调用它们,您将得到下一个匹配项,依此类推,直到没有匹配项,它将重置为下一个字符串的开头。您也可以写
regex.lastIndex=0
以重置此状态。

(这当然是绝对糟糕的设计,保证会造成混乱并引起奇怪的错误。欢迎使用Javascript!)

可以省略

g
从你的
RegExp
,因为你只测试了一场比赛。

另外,我认为您不需要

[^-_]
正面和背面。那将允许在每个末端的 任何
字符,即。
*plop!
将是有效的。您可能正在考虑超前/向后断言,但是它们在Javascript中不可用。(嗯,应该是超前的,但是在IE中是坏的。)建议:

/^[a-z0-9][a-z0-9_-]{2,18}[a-z0-9]$/i


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4894676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存