2011-01-13 35 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塊。但是,如果經常給出錯誤的輸入,那麼拋出異常是非常昂貴的。因此,我更喜歡上述方式,至少在簡單情況下。