Я хочу проверить номер (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);
сам по себе ничего не делает. - person Sebastian Simon   schedule 16.05.2017if (validate)
всегда возвращает true, потому чтоvalidate
— это функция. - person Heretic Monkey   schedule 16.05.2017