0

我编写了一个函数来验证必须输入电话号码的表单。我要做的是,如果输入了一个数字,它会确保该数字的格式正确,这意味着该字段不是强制性的。我遇到的问题是,如果该字段留空(这是可以接受的),它仍然会显示“电话号码格式不正确”的消息,而如果它是空的,它根本不应该验证该字段。这是我正在使用的代码:

function validateHome() {
    var num2 = document.getElementById('homeno').value;

    if (num2 !== "" && !num2.match(/\(\d{2}\)\d{8}/)) {
        alert('That is not correct telephone number format');
        return false;
    }
    return true;
}

谁能帮我指出我的错误?

4

2 回答 2

4

如果 num2 为空,则它的值可能未定义。

更好的方法可能是:

if (num2 && !num2.match(/\(\d{2}\)\d{8}/))

这将检查 num2 是否实际定义而不是空白。

于 2013-05-30T13:00:30.833 回答
0

不应该if (num2 == "" || !num2.match(/\(\d{2}\)\d{8}/))吗?

于 2013-05-30T12:54:54.777 回答