通过自定义验证器和javascript验证电话号码

时间:2011-07-01 10:09:29

标签: javascript jquery asp.net regex validation

我有一个phoneTextBox控件,其中包含4个TextBoxes:

国家代码(1-3位数), 城市代码(1-7位), 本地号码(1-7位) 和额外的电话号码(1-5位数)。

不需要额外的电话号码。

以下代码不起作用。

    <script type="text/javascript">
    function ValidatePhoneNumber(source, args) 

    {
        if (     $('#<%=txtCountryCode.ClientID %>').val().match(/^\d{1,3}$) ||
                 $('#<%=txtCityCode.ClientID %>').val().match(/^\d{1,7}$) ||
                 $('#<%=txtMainPhoneNumber.ClientID %>').val().match(/^\d{1,7}$)
           )


        {
            if ($('#<%=txtExtraPhoneNumber.ClientID %>').val().length<=0)
            {
               args.IsValid = true;
               return;
            }
            else 
            {
                if ($('#<%=txtExtraPhoneNumber.ClientID %>').val().match(/^\d{1,5}$)
                {
                    args.IsValid = true;
                   return;

                }
                else 
                {
                    args.IsValid = false;

                }

            }
        }
        else 
                {
                    args.IsValid = false;

                }

}
</script>
    <div style="display: inline">
        <asp:CustomValidator runat="server" ForeColor="Red" ErrorMessage="Invalid format" ClientValidationFunction="ValidatePhoneNumber" />
        <div>
            <b>+</b><asp:TextBox ID="txtCountryCode" runat="server" Width="30px" MaxLength="3"></asp:TextBox>
            <asp:TextBox ID="txtCityCode" runat="server" Width="60px" MaxLength="7"></asp:TextBox>
            <asp:TextBox ID="txtMainPhoneNumber" runat="server" Width="60px" MaxLength="7"></asp:TextBox>
            <asp:TextBox ID="txtExtraPhoneNumber" runat="server" Width="50px" MaxLength="5"></asp:TextBox>
        </div>
    </div>

2 个答案:

答案 0 :(得分:2)

    args.IsValid = $('#<%=txtCountryCode.ClientID %>').val().match(/^\d{1,3}$/) &&
                 $('#<%=txtCityCode.ClientID %>').val().match(/^\d{1,7}$/) &&
                 $('#<%=txtMainPhoneNumber.ClientID %>').val().match(/^\d{1,7}$/) &&
$('#<%=txtExtraPhoneNumber.ClientID %>').val().match(/^\d{0,5}$/);

答案 1 :(得分:1)

您缺少使用/

结束所有正则表达式