2013-07-17 27 views
2

我覺得我在這裏重新發明了車輪。所有我希望它採取串並插入破折號格式的社會安全號碼顯示:掩蔽文本代碼。任何更短的方式?

if (maskedText.Length <= 3) 
{ 
    text = maskedText; 
} 
else 
{ 
    text = maskedText.Substring(0, 3) + "-"; 

    if (maskedText.Length <= 5) 
    { 
     text += maskedText.Substring(3, maskedText.Length - 3); 
    } 
    else 
    { 
     text += maskedText.Substring(3, 2) + "-" 
       + maskedText.Substring(5, maskedText.Length - 5); 
     if (text.Length > 11) 
     // Trim to 11 chars - this is all for SSN 
     text = text.Substring(0, 11); 

    } 
} 

我做它在Silverlight自定義控件。我不知道是否有螞蟻內置的庫或函數會做到這一點?我要添加任何相關性(下載大小)

回答

0

所有你需要做的是插入一些短線...

text = maskedText.Insert(5, "-").Insert(3, "-"); 

編輯:確定這是隻比上述清潔了一下代碼...

if (maskedText.Length > 9) 
     maskedText = maskedText.Substring(0, 9); 
    if (maskedText.Length > 5) 
     maskedText = maskedText.Insert(5, "-"); 
    if (maskedText.Length > 3) 
     maskedText = maskedText.Insert(3, "-"); 
    text = maskedText; 

如果它是一個數字,你可以做到這一點......但遺憾的是沒有簡單的格式語句的字符串來做到這一點。

String.Format("{0:000-00-0000}", ssnNumeric) 
+0

這不工作,因爲它不符合maskedText.Length流程方案!= 9,我的代碼格式和基於字符串的大小 – katit

+0

右鍵插入橫線......去得太快......您要驗證字符串也是如此。給我一秒鐘。 – Kevin

+0

我比我的方式更喜歡它。謝謝! – katit