gpt4 book ai didi

JavaScript if 语句只评估第一个条件

转载 作者:行者123 更新时间:2023-11-29 16:13:24 25 4
gpt4 key购买 nike

我的 if 语句只评估第一个条件,第二个在 || 之后被忽视了。如何解决这个问题?

function validateAge(input) {
if ((input.value < 0 || input.value > 110) || (input.value.match(/[^0-9]/))) {
input.setCustomValidity("Dozwolony zakres: od 0 do 110");
} else {
input.setCustomValidity("");
}
}

最佳答案

好吧,有一个东西叫做 lazy evaluation .如果没有必要,JavaScript 解释器不会评估某些东西。在析取 ( || ) 中,当第一个语句的计算结果为 true 时那么整个表达式为真,所以这就是为什么当 JavaScript 解释器求值时:(input.value < 0 || input.value > 110)为真,则无需计算 (input.value < 0 || input.value > 110) 的值.

如果(input.value.match(/[^0-9]/))是“show stopper”,您可以按以下方式进行:

if ((input.value.match(/[^0-9]/)) || (input.value < 0 || input.value > 110))

如果我理解正确,你需要这样的东西:

function validateValue(input) {
var value = input.value;
if (/^\d+$/.test(value)) {
value = parseInt(value, 10);
} else {
return false;
}
return value < 0 || value > 110;
}

关于JavaScript if 语句只评估第一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com