首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配一定数位数的正则表达式

匹配一定数位数的正则表达式
EN

Stack Overflow用户
提问于 2012-11-01 14:13:57
回答 3查看 76.2K关注 0票数 40

以下正则表达式将匹配范围为9-11位数的范围:/\d{9,11}/

写一个匹配9位或11位数字(不包括10位)的正则表达式的最佳方法是什么?

使用输入元素的模式属性,因此regex应该匹配输入字段的整个值。我想接受任何包含9或11位数的数字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-01 14:17:29

嗯,你可以试试这样的东西:

代码语言:javascript
运行
复制
^\d{9}(\d{2})?$

这正好匹配九位数字和一个可选的额外两位数(即9位或11位)。

或者,

代码语言:javascript
运行
复制
^(\d{9}|\d{11})$

可能也会起作用。

但是请记住,并不是所有的事情都必须用正则表达式来完成。检查字符串与^\d*$匹配也同样容易,并且字符串长度本身为9或11 (例如,使用类似于strlen的方法)。

票数 48
EN

Stack Overflow用户

发布于 2012-11-01 14:17:09

这个regex可以

代码语言:javascript
运行
复制
^(\d{9}|\d{11})$

或者如果你不想和它完全匹配

代码语言:javascript
运行
复制
\D(\d{9}|\d{11})\D
票数 6
EN

Stack Overflow用户

发布于 2012-11-01 14:16:29

代码语言:javascript
运行
复制
/[^\d](\d{9}|\d{11})[^\d]/

根据您正在使用的工具,您可能需要转义(、\和)字符。

请注意,为了不匹配8或除9或11以外的任何其他数字,正则表达式必须有某种限制,以指示匹配被非数字字符包围。理想情况下,它将是某种文字边界字符,但其语法将因工具而异。

代码语言:javascript
运行
复制
/\b(\d{9}|\d{11})\b/

和一些工具一起工作。你在忙什么?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13178912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档