protected void Page_Load(object sender, EventArgs e)
{
lab.Text = FormatTelephoneNumber("0034523");
}
public static string FormatTelephoneNumber(string value)
{
value = new System.Text.RegularExpressions.Regex(@"\D").Replace(value, string.Empty);
return Convert.ToInt64(value).ToString(" #- ###-###");
}
提供输出:
34-523
但我需要输出:
0-034-523
0034523
将成为0-034-523
而00345
将变为0-034-5
(无额外的价值或0- 000-345
)
答案 0 :(得分:4)
根据MSDN,您可以使用0
代替#
value.ToString("0- 000-000")
答案 1 :(得分:4)
您不应将其转换为int
。在string
本身执行正则表达式。转换为int
将忽略前导0
答案 2 :(得分:3)
使用0- 000-000
作为格式。
要获得格式的其他要求,请使用以下两种格式:
int val = Convert.ToInt32(value);
if (val < 1000)
{
return val.ToString("0-000-0");
}
else
{
return val.ToString("0-000-000");
}
0
用于表示填充。
根据MSDN:
如果存在,则用相应的数字替换零;否则,结果字符串中会出现零。