3 回答
TA贡献1806条经验 获得超8个赞
提示总是返回一个字符串,您可以尝试将其转换为数字,然后检查它是否为NaN,这意味着它是一个字符串。不过最好在这里使用正则表达式。如果您正在记录名称,则可能还需要返回该名称。
function EnterName() {
var name = prompt("Enter your name here:");
var isNum = !isNaN(Number(name));
if (!isNum) {
alert("thank you " + name);
} else {
alert("you didn't enter a valid name");
}
return name;
}
console.log(EnterName());
TA贡献1877条经验 获得超1个赞
因此,我要强调的一件事是您如何解决这个问题。您正在思考问题,“如果我输入数字,这应该是错误的!为什么它不起作用?!”。之所以这样,是因为提示符将始终返回键入为的值string。您正在查看是否存在取决于语言的“ a”number或“int取决于”。
因此,我们可以将其分为两个问题。查看此人是否是字符串,查看该字符串是否包含数字
下面的代码显示了使用两个函数来实现此目的的好方法
function enterName() { // Javscript functions should always start with a lowercase unless it is a function express and can be invoked using the `new` keyword
var name = prompt("Enter your name here:");
if (!checkIfContainsNumber(name)) {
alert("thank you " + name);
} else { // if f we dont have a number, we have a valid name, otherwise we are invalid!
alert("you didn't enter a valid name");
}
}
所以我们有我们的主要功能,它接收提示,总是返回一个 string
// this solves problem 2, seeing if we have a number inside of our string
function checkIfContainsNumber(myString) {
return /\d/.test(myString);
}
enterName();
我们的第二个函数checkIfContainsNumber使用匹配数字的正则表达式来解决问题的第二部分(d在这种情况下)
添加回答
举报