可选手机号码的JavaScript验证

可选手机号码的JavaScript验证,javascript,validation,Javascript,Validation,我有一份登记表,其中有一个MobileNo字段,用户应该在该字段中提供他们的手机号码,但该字段是可选的,因为用户可以选择不提供他/她的手机号码。 在数据库表中,我为该字段保留了ALLOW NULL选项 现在我想在这个字段上使用JavaScript验证,这样用户就只能键入一个整数值,而如果他/她选择提供他的/她的手机号码,则只能键入10位数字。 问题是,当我为此编写代码时,当我将mobile字段保留为空时,它会在JavaScript验证工作时显示错误 我的JavaScript代码如下所示: fun

我有一份登记表,其中有一个MobileNo字段,用户应该在该字段中提供他们的手机号码,但该字段是可选的,因为用户可以选择不提供他/她的手机号码。
在数据库表中,我为该字段保留了
ALLOW NULL
选项

现在我想在这个字段上使用JavaScript验证,这样用户就只能键入一个整数值,而如果他/她选择提供他的/她的手机号码,则只能键入10位数字。
问题是,当我为此编写代码时,当我将mobile字段保留为空时,它会在JavaScript验证工作时显示错误

我的JavaScript代码如下所示:

function f1() {
if (document.form2.mobile.length!=10 || isNan(document.form2.mobile) {
    alert("Mobile No must be NUMERIC and 10 digit long");
    return false;   
}

是否有任何解决方案,因为只有当用户选择键入其手机时,这些验证才会起作用。否则,如果手机为空,注册将完成。

将其包装在另一个条件中,如下所示:

function f1() {
    if(document.form2.mobile.value !== "") {
        if (document.form2.mobile.length!=10 || isNan(document.form2.mobile)
        {
            alert("Mobile No must be NUMERIC and 10 digit long");
            return false;
        }
    }
}
正则表达式选项:

if (!/^$|^\d{10}$/.test(document.form2.mobile.value)) {
    alert("Mobile No must be NUMERIC and 10 digit long");
    ...
}

如果我这样做,那么如果我将其保留为空,则注册将成功完成,但当我给出10位数字“否”时,它仍会显示警告消息:(您确定isNan函数的工作方式正确吗?尝试记录
document.form2.mobile.length!=10
isNan(document.form2.mobile)
它现在起作用了,实际上我刚刚添加了value属性document.form2.mobile.value.length!=10和isNan(document.form2.mobile.value)很酷,很高兴能帮上忙。