2011-12-19 65 views
2

我想查看該字符串是否包含特定格式。例如,如果有人輸入電話號碼1234567890,我需要強制某人以特定格式輸入電話號碼。 (###)### - ####。我正在對一個出售的程序進行更改,該程序的設計非常糟糕,您無法在表單中強制進行格式設置。所以,我想知道是否有一種方法來使用string.contains(「(###)### - ####」)或任何其他幫助將不勝感激。如何檢查一個字符串是否包含特定格式

+0

這是winforms,webforms,WPF或??? – David 2011-12-19 16:08:13

+0

使用RegularExpression。 – 2011-12-19 16:19:19

回答

6

聽起來像你想使用正則表達式(又名正則表達式)正則表達式通常是嘗試獲取或檢查字符串對模式的最佳路線。

here is MSDN docshere is a decent how-to on codeproject

一個quick google會告訴你的例子,教程和表達

+0

是的,這實際上是有道理的:)。謝謝 – 2011-12-19 16:33:59

1

您可以使用

+0

+1 - 如果這是ASP.NET而不是webforms,那麼在Ajax Control Toolkit上有一個類似的控件,我相信也有其他的... – David 2011-12-19 16:08:59

0

聽起來像是你需要使用正則表達式噸,噸?

More info here

0

有很多選擇,但最安全的是使用正則表達式類,並匹配所需表達的字符串(請參閱一些樣品here

0

爲什麼不創建一個方法,你可以控制在例如字段格式,如果他們離開現場和類型12345671454通說這個方法並返回格式化字符串

public static string FormatNumberPhone(string inputString) 
    { 
     string tempString; 
     tempString = string.Format("{0:(###)###-####}", Convert.ToInt32(inputString)); 
     return tempString; 
    } 
0

這聽起來像工作3210。基本上你必須想出一個正則表達式,然後使用例如IsMatch方法來檢查用戶輸入是否匹配。如果不是,那麼電話號碼格式不正確。

下面是一個簡單

 // Matches (123) 123-1234 or (123) 123 1234 
     var pattern = @"\((?<AreaCode>\d{3})\)\s*(?<Number>\d{3}(?:-|\s*)\d{4})"; 
     var regexp = new System.Text.RegularExpressions.Regex(pattern); 
     var userInput = "(123) 555-1243"; 
     if (!regexp.IsMatch(userInput)) 
     { 
      // Does not match. User input is in incorrect format 
      return; 
     } 

對於學習的目的,我建議你使用一個軟件,如Expresso或谷歌正則表達式的電話號碼。我在示例中使用的表達式帶有Expresso(免費工具)。

相關問題