【问题标题】:The function doesn't validate a phone number该功能不验证电话号码
【发布时间】: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


【解决方案1】:

以下

if(validate)

表示“对象validate 存在吗?”

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

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) {}

【讨论】:

  • 非常感谢。你是救生员!
猜你喜欢
  • 1970-01-01
  • 2018-03-23
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多