首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用正则表达式匹配中间有连字符的固定长度的数字?

问如何使用正则表达式匹配中间有连字符的固定长度的数字?
EN

Stack Overflow用户
提问于 2011-02-18 14:45:45
回答 3查看 13.2K关注 0票数 7

我是正则表达式的新手,我想知道如何编写执行以下操作的正则表达式:

验证类似123-0123456789的字符串。应该只允许使用数字值和连字符。另外,验证连字符前有3个数字字符,连字符后有10个字符。

EN

回答 3

Stack Overflow用户

发布于 2011-02-18 16:30:42

给定的答案不适用于具有更多数字的字符串(如'012-0123456789876'),因此您需要:

代码语言:javascript
复制
str.match(/^\d{3}-\d{10}$/) != null;

或

代码语言:javascript
复制
/^\d{3}-\d{10}$/.test(str);
票数 11
EN

Stack Overflow用户

发布于 2011-02-18 14:48:00

试试这个:

代码语言:javascript
复制
^\d{3}-\d{10}$

这表示:只接受3个数字,然后是连字符,然后是10个数字

票数 5
EN

Stack Overflow用户

发布于 2011-02-18 14:48:25

当然,这应该是可行的:

代码语言:javascript
复制
var valid = (str.match(/^\d{3}-\d{10}$/) != null);

示例:

代码语言:javascript
复制
> s = "102-1919103933";
"102-1919103933"
> var valid = s.match(/\d{3}-\d{10}/) != null;
> valid
true
> s = "28566945";
"28566945"
> var valid = s.match(/\d{3}-\d{10}/) != null;
> valid
false
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5038428

复制
相关文章

相似问题

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