Mar*_*ers 76
使用此正则表达式仅匹配十位数:
@"^\d{10}$"
Run Code Online (Sandbox Code Playgroud)
要在字符串中的任何位置查找十个连续数字的序列,请使用:
@"\d{10}"
Run Code Online (Sandbox Code Playgroud)
请注意,这也会找到11位数字的前10位数字.要在字符串中的任何位置搜索正好 10个连续数字而不是更多数字,您可以使用负面外观:
@"(?<!\d)\d{10}(?!\d)"
Run Code Online (Sandbox Code Playgroud)
如何实现它的示例:
public bool ValidateSocialSecNumber(string socialSecNumber)
{
//Accepts only 10 digits, no more no less. (Like Mike's answer)
Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)");
if(pattern.isMatch(socialSecNumber))
{
//Do something
return true;
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以通过另一种方式来完成此操作,例如使用Match然后将 try-catch 块包装在模式匹配周围。但是,如果经常给出错误输入,则抛出异常的成本相当高。因此,至少在简单的情况下,我更喜欢上述方式。