首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >至少x个数字字符的javascript正则表达式

至少x个数字字符的javascript正则表达式
EN

Stack Overflow用户
提问于 2014-02-12 16:39:47
回答 3查看 689关注 0票数 1

表示字符串中至少有10个数字字符的正则表达式。

可能有10人以上,但不少于10人。在任意位置可以有任意数量的其他字符,将数字分隔开来。

示例数据:

代码语言:javascript
复制
(123) 456-7890
123-456-7890 ext 41
1234567890
etc.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-12 16:45:14

要确保至少有10位数字存在,请使用以下正则表达式:

代码语言:javascript
复制
/^(\D*\d){10}/

代码:

代码语言:javascript
复制
var valid = /^(\D*\d){10}/.test(str);

测试:

代码语言:javascript
复制
console.log(/^(\D*\d){10}/.test('123-456-7890 ext 41')); // true
console.log(/^(\D*\d){10}/.test('123-456-789')); // false

解释:

代码语言:javascript
复制
^ assert position at start of the string
1st Capturing group (\D*\d){10}
Quantifier: Exactly 10 times
Note: A repeated capturing group will only capture the last iteration.
Put a capturing group around the repeated group to capture all iterations or use a 
non-capturing group instead if you're not interested in the data
\D* match any character that's not a digit [^0-9]
Quantifier: Between zero and unlimited times, as many times as possible
\d match a digit [0-9]
票数 1
EN

Stack Overflow用户

发布于 2014-02-12 16:42:02

最简单的方法可能是去掉所有的非数字字符,然后数一数剩下的:

代码语言:javascript
复制
var valid = input.replace(/[^\d]/g, '').length >= 10

注:.replace不修改原始字符串。

票数 2
EN

Stack Overflow用户

发布于 2014-02-12 16:48:12

代码语言:javascript
复制
(\d\D*){10}

一个数字,后面跟着任意数量的非数字,十次。

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

https://stackoverflow.com/questions/21733994

复制
相关文章

相似问题

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