【发布时间】:2017-05-16 14:48:23
【问题描述】:
我想检查一个号码(var phone)。它应该是有效的,如果它有 7 到 8 个字符,其中一个可以是破折号 (-)。 如果数字大于 8 或小于 7 个字符,该函数应返回 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)测试函数validate是否存在,它显然存在。你的意思是if (validate(phone))。validate(phone);本身不会做任何事情。 -
if (validate)总是返回 true,因为validate是一个函数。 -
@Xufox 要明确,它确实“做某事”,但结果被忽略了。
-
我认为这个问题不应该被否决。我同意问题很简单,但既不是格式错误,也不是不清楚,也不是缺乏努力
标签: javascript function phone-number