/^^-_[^-_]$/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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)