繁体   English   中英

Javascript 正则表达式限制用户在文本字段中输入相同的连续数字

[英]Javascript Regular Expression to restrict user from Entering same consecutive digits in a text field

我想限制用户在文本字段中输入相同的连续数字,例如用户不能输入像 John22 或 22John 或 jo22hn 这样的字符串......他可以输入像 Joh2n2、2Joh2n 等这样的字符串......所有这些都必须在 Javascript 中完成(使用正则表达式会是更好的选择)...请帮助

测试一个字符串的连续数字:

/(\d)\1/.test(string)

您可以通过使用负前瞻来做到这一点。

^(?!.*(\d)\1).*$

在 Regexr 上查看

^$在字符串的开头和结尾锚定匹配。

.*将匹配所有内容(换行符除外)

这里的重要部分是 Negative lookahead (?..*(\d)\1)它将检查整个字符串中的数字\d由于括号(\d)将其放入捕获组并使用重用该值反向引用\1并且整个事情都失败了,它有一个数字后跟相同的数字。

以下正则表达式应该会有所帮助:

/[0-9]{2,}/

或者

/[\d]{2,}/

虽然,您可以使用 /g 标志匹配所有实例:

/[0-9]{2,}/g

这个 JSFiddle上看到它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM