以下正则表达式将匹配 9-11 位数字:/\d{9,11}/
编写完全匹配 9位或11 位数字(不包括 10 位)的正则表达式的最佳方法是什么?
使用输入元素的模式属性,因此正则表达式应该匹配输入字段的整个值。我想接受任何包含 9 位或 11 位数字的数字。
以下正则表达式将匹配 9-11 位数字:/\d{9,11}/
编写完全匹配 9位或11 位数字(不包括 10 位)的正则表达式的最佳方法是什么?
使用输入元素的模式属性,因此正则表达式应该匹配输入字段的整个值。我想接受任何包含 9 位或 11 位数字的数字。
好吧,您可以尝试以下方法:
^\d{9}(\d{2})?$
这完全匹配九位数字,后跟可选的额外两位数字(即 9 或 11 位数字)。
或者,
^(\d{9}|\d{11})$
也可以工作。
但请记住,并非所有事情都必须使用正则表达式来完成。^\d*$
检查字符串匹配以及字符串长度本身是 9 还是 11可能同样容易(例如strlen
,使用类似的东西)。
这个正则表达式会做
^(\d{9}|\d{11})$
或者如果你不想完全匹配它
\D(\d{9}|\d{11})\D
/[^\d](\d{9}|\d{11})[^\d]/
根据您使用的工具,您可能需要转义(、|和)字符。
请注意,为了不匹配 8 或除 9 或 11 之外的任何其他数字,正则表达式必须以某些内容为界,以表明匹配被非数字字符包围。理想情况下,它将是某种字边界字符,但其语法会因工具而异。
/\b(\d{9}|\d{11})\b/
使用一些工具。你在做什么?