我正在使用以下代码行
<asp:TemplateField HeaderText="Phone" SortExpression="Phone">
<ItemTemplate>
<asp:Label ID="lblPhone" runat="server">
<%# Regex.Replace(Eval("Phone").ToString(), @"(\d{3})(\d{3})(\d{4})", "($1)-$2-$3") %>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
格式化数字如9419002345但不是数字,如1408-464-1680或463237062 ......请帮我写出准确的正则表达式。
答案 0 :(得分:1)
这是因为你的正则表达式只有十位数才匹配。您的463237062
只有9个。
您应该使算法允许匹配9位数,例如:
@"(\d{1,3})(\d{3})(\d{4})"
答案 1 :(得分:1)
你可以试试这个:
(\d{10})
将比较10个数字
要么
4 digits
- 3 digits
- 4 digits
(\d{10})|(\d{4}-\d{3}-\d{4})
根据需要调整位数。