使用正则表达式电话号码

时间:2016-04-28 10:13:03

标签: regex

我正在使用以下代码行

      <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 ......请帮我写出准确的正则表达式。

2 个答案:

答案 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})

根据需要调整位数。