该函数不验证 phone 数字

The function doesn't validate a phone number

我想查询一个号码 (var phone)。它应该是有效的,如果它有 7 到 8 个字符,其中一个可以是破折号 (-)。 如果数字大于 8 个或小于 7 个字符,函数应该 return false(显然不是)。问题在哪里? 无论我分配给 var phone 什么,console.log 都表明一切都是有效的。顺便说一句,我是 JavaScript.

的初学者
var phone = "123-56";

function validate(phoneNumber) {
    if (phoneNumber.length > 8 ||
        phoneNumber.length < 7) {
        return false;
    }
var vals = phoneNumber.split("-");

if (isNaN(vals[0]) || isNaN(vals[1])) {
    return false;
}
return true;
}

if (validate) {
console.log("The number " + phone + " is valid.");
} else {
console.log("The number " + phone + " is NOT valid.");
}

以下

if(validate)

表示"Does the object validate exist?"

你要做的就是使用验证函数的执行结果:

if (validate(phone)) {
    console.log("The number " + phone + " is valid.");
} else {
    console.log("The number " + phone + " is NOT valid.");
}

其中 if (validate(phone))

的某种简写形式
let validated = validate(phone);    // you store the result of the validate function into a new variable
if (validated) {}