javascript - 如果使用一个“如果”,我不希望使用其他“如果”。
问题描述
如果我键入 18,则会显示来自其他 if 的以下答案。
var age = prompt("please enter your age")
var letters = /^[A-Za-z]+$/;
if (age == 18) {
alert("welcome to our website")
}
if (age > 18) {
alert("welcome to our website")
}
if (age < 18) {
alert("you aren't allowed to visit this website")
window.close()
}
if (age = letters) {
alert("please enter a valid number")
prompt("please enter your age")
}
解决方案
好吧,首先你有太多的测试。由于如果用户是 18 岁或大于 18 岁,您想要做同样的事情,您可以将这两者结合起来。
并且由于您只有两个关于年龄的条件和结果,您可以将另一个if
测试转换为else
分支,以便只输入一个测试分支。
但是,您没有根据您的正则表达式正确测试用户输入。有几种方法可以做到这一点,但简单的.test()
方法就可以了。即使这是进行正则表达式测试的方法,你的最后一个=
也需要==
这样才能进行比较,而不是赋值。
见下文:
var age = prompt("please enter your age");
// First just test to see if they entered letters or not
if(testInput(age)){
// Some letters were entered...
alert("please enter a valid number");
age = prompt("please enter your age");
testInput(age); // test again
}
// When there are only numbers...
if (age >= 18) {
alert("welcome to our website");
} else {
alert("you aren't allowed to visit this website");
window.close();
}
// This function will accept a string
function testInput(age){
var letters = /^[A-Za-z]+$/;
// And return true or false based on testing the string
// against the regular expression.
return letters.test(age);
}
推荐阅读
- reactjs - 通过反应应用程序中的方法调用显示模式
- android - 如何读取和写入导入的预填充 SQLite 数据库
- google-chrome - Chrome 浏览器 HAR 文件不完整
- string - 基于两个不同列之间的匹配子字符串合并数据帧
- mongodb - 现在 Mongoose 编译后无法覆盖模型
- python - 有没有办法在 python 中使用颜色曲线来操作图像?
- python - Numpy 使用 2D 数组作为 3D 数组的类似高度图的索引
- javascript - 当导航参数更改时,如何让我的组件重新渲染?
- swift - swift中forEach循环的进度条
- tensorflow - 如何计算神经网络预测的置信度分数