2011-01-13 138 views

回答

69

使用此正则表达式只匹配十个位数:

@"^\d{10}$" 

要查找的连续十位数的字符串,任何地方使用顺序:

@"\d{10}" 

注意,这也将找到前11位数字的前10位数字。要在字符串中的任何地方搜索正是 10连续数字,而不是更多,你可以使用负lookarounds

@"(?<!\d)\d{10}(?!\d)" 
+0

对不起,但什么是“负面看”? – sova 2011-01-13 21:44:22

3

使用此:

\d{10} 

我希望它能帮助。

6

使用以下模式。

^\d{10}$ 
3
\d{10} 

我认为应该这样做

3

如何实现它的一个例子:

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; 
    } 
} 

您可以通过例如也做了另一种说法使用Match,然后在模式匹配周围包装一个try-catch块。但是,如果经常给出错误的输入,那么抛出异常是非常昂贵的。因此,我更喜欢上述方式,至少在简单情况下。

相关问题