2016-06-30 16 views
-2

我有一個電話號碼:獲得一個美國的電話號碼的區域作爲一個子MVC

public string PhoneNumber 
{ 
    get 
    { 
     return _phoneNumber; 
    } 
    set 
    { 
     Regex regexObj = new Regex(@"[^\d]"); 
     _phoneNumber = regexObj.Replace(value, ""); 
     _phoneNumber = Regex.Replace(_phoneNumber, @"(\d{3})(\d{3})(\d{4})", "($1) $2-$3"); 
    } 
} 
private string _phoneNumber; 

我怎樣才能讓public string Areacode含第3位(區號)******中國的一個子?順便說一句,我正在使用mvc。我在這裏先向您的幫助表示感謝。

+3

你保證電話號碼總是以可解析的特定格式分配?電話號碼可以生活在幾十種不同的格式中;這些總是美國的電話號碼?你有一個樣本數據集來運行一些測試? –

+0

你問的是如何將前三位數字分配給另一個字符串屬性,當有十位數字時,或者第二到第四位數字有十一位數字時,第一位數字是1?或者你想認真對待它? –

+0

電話號碼的長度最多爲10位數字(僅限美國數字)@Cory。就數據集而言,使用「1234567891」應該足夠達到我的目的。 – julianc

回答

1

如果我正確理解你的問題,如果你正在尋找的是採取區域碼的另一個特性,可以有幾個簡單的方法,但在這裏就是其中之一..

public string PhoneNumber 
    { 
     get 
     { 
      return _phoneNumber; 
     } 
     set 
     { 
      Regex regexObj = new Regex(@"[^\d]");     
      _phoneNumber = regexObj.Replace(value, "");    
      var match = Regex.Match(_phoneNumber, @"(\d{3})(\d{3})(\d{4})"); 
      if(match.Success) 
      { 
       _phoneNumber = string.Format("({0}) {1}-{2}", match.Groups[1], match.Groups[2], match.Groups[3]); 
       this.Areacode = match.Groups[1].ToString(); 
      } 
     } 
    } 
    private string _phoneNumber; 

    public string Areacode { get; private set; } 
+0

對不起,我是一個完整的noob,但這正是我需要的。謝謝。 – julianc

相關問題