检查字符串是否仅包含数字且长度为11个字符/数字的正则表达式?

7

目前我正在使用:

if (Regex.IsMatch(searchValue, @"^\d{11}.*") && searchValue.Length == 11)
   {
     // Do something
   }

我该如何修改正则表达式以检查长度,而不使用“&&”运算符?提前致谢。

“&&”运算符有什么问题吗? - Cheng Chen
@Danny - 没有本身的意义。如果正则表达式涵盖了相同条件的测试,那么它只是多余的。 - Tim Croydon
1
除非你知道自己在做什么,否则不应使用\d。请使用[0-9]。\d将捕获非欧洲数字。new Regex(@"\d").IsMatch("" + (char)0x660) == true!(0x660是阿拉伯印度数字零,٠) - xanatos
@xanatos - 很有趣。谢谢 - 我从来不知道! - Tim Croydon
3个回答

7

将模式更改为

@"^\d{11}$"

应该这样做


@BoltClock - 是的,但这已经隐含在问题中了(这是问题的目的)。 - Marc Gravell

2
请使用以下表达式:

^\d{11}$


1

我倾向于使用Expresso工具来设计正则表达式模式,特别是当它们变得复杂时。它会展示一个清晰的分解,告诉你每个正则表达式部分的作用。同意其他回帖者(Marc/Logicnp)对于OP问题的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接