首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我需要一个正则表达式来验证给定字符串中的至少7位数字

我需要一个正则表达式来验证给定字符串中的至少7位数字
EN

Stack Overflow用户
提问于 2009-07-13 07:47:14
回答 2查看 30K关注 0票数 16

我想验证一个电话号码。我的条件是,在给定的字符串中,我希望至少有7个数字,忽略分隔符,X,段落。

实际上,我想在regex中实现这个功能:

代码语言:javascript
复制
Func<string, bool> Validate = s => s.ToCharArray().Where(char.IsDigit).Count() >= 7;
Func<string, bool> RegexValidate = s => System.Text.RegularExpressions.Regex.IsMatch(s, @"regex pattern should come here.")
string x = "asda 1234567 sdfasdf";
string y = "asda   sdfa 123456 sdfasdf";

bool xx = Validate(x); //true
bool yy = Validate(y); //false

我需要的目的是希望在asp:RegularExpressionValidator中包含此正则表达式

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-13 08:02:15

七位或更多数字,与任意数量的任何其他类型的字符混合在一起?这似乎不是一个非常有用的需求,但现在你可以这样做了:

代码语言:javascript
复制
^\D*(?:\d\D*){7,}$
票数 40
EN

Stack Overflow用户

发布于 2009-07-13 08:12:37

为什么要使用正则表达式呢?您发布的第一个Validate函数简单地计算了数字的数量,它更容易理解,而且可能也更快。我只需要去掉不必要的ToCharArray调用,将谓词压缩到Count函数中,然后就完成了:

代码语言:javascript
复制
s.Count(char.IsDigit) >= 7;

请注意,如果您只想接受'normal‘数字(即0-9),那么您需要更改验证函数,因为IsDigit匹配许多不同的数字表示形式,例如

代码语言:javascript
复制
s.Count(c => c >= '0' && c <= '9') >= 7;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1118150

复制
相关文章

相似问题

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