屏蔽文本代码。任何更短的方式?

时间:2013-07-17 00:09:18

标签: c# silverlight

我觉得我在这里重新发明轮子。所有我希望它采取字符串和插入破折号格式化社会安全号码显示:

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中进行自定义控制。我想知道是否有蚂蚁内置库或功能可以做到这一点?我想要添加任何依赖项(下载大小)

1 个答案:

答案 0 :(得分: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)