以下正则表达式将匹配范围为9-11位数的范围:/\d{9,11}/
写一个匹配9位或11位数字(不包括10位)的正则表达式的最佳方法是什么?
使用输入元素的模式属性,因此regex应该匹配输入字段的整个值。我想接受任何包含9或11位数的数字。
发布于 2012-11-01 14:17:29
嗯,你可以试试这样的东西:
^\d{9}(\d{2})?$这正好匹配九位数字和一个可选的额外两位数(即9位或11位)。
或者,
^(\d{9}|\d{11})$可能也会起作用。
但是请记住,并不是所有的事情都必须用正则表达式来完成。检查字符串与^\d*$匹配也同样容易,并且字符串长度本身为9或11 (例如,使用类似于strlen的方法)。
发布于 2012-11-01 14:17:09
这个regex可以
^(\d{9}|\d{11})$或者如果你不想和它完全匹配
\D(\d{9}|\d{11})\D发布于 2012-11-01 14:16:29
/[^\d](\d{9}|\d{11})[^\d]/根据您正在使用的工具,您可能需要转义(、\和)字符。
请注意,为了不匹配8或除9或11以外的任何其他数字,正则表达式必须有某种限制,以指示匹配被非数字字符包围。理想情况下,它将是某种文字边界字符,但其语法将因工具而异。
/\b(\d{9}|\d{11})\b/和一些工具一起工作。你在忙什么?
https://stackoverflow.com/questions/13178912
复制相似问题