猿问

如何创建显示基于“提示”输入类型的文本的“警报”弹出窗口?

我是一个初学者,尝试了一些基本的Javascript。我的目标是根据提示输入显示(1.)提示消息(请求名称),然后显示(2.)警报。如果提示输入的是有效名称(字符串),则将出现一个警告框,其中包含文本“谢谢” +名称。否则,警报应显示为文本“您未输入有效名称”。


1.提示消息正在起作用,但是,无论输入名称/文本还是数字,2.警报消息都会向我显示相同的文本。换句话说,警报消息不会区分文本字符串或数字,并且始终显示文本“谢谢” +名称。


这是我的代码:


function EnterName() {

  var name = prompt("Enter your name here:");

  if (typeof name === "string") {

    alert("thank you " + name);

  } else if (typeof name === "number") {

    alert("you didn't enter a valid name");

  }

}

console.log(EnterName());

在提示框中输入数字后,如何使警报框显示“您没有输入有效名称”的任何见解,我们将不胜感激。



POPMUISE
浏览 150回答 3
3回答

慕森卡

提示总是返回一个字符串,您可以尝试将其转换为数字,然后检查它是否为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());

冉冉说

因此,我要强调的一件事是您如何解决这个问题。您正在思考问题,“如果我输入数字,这应该是错误的!为什么它不起作用?!”。之所以这样,是因为提示符将始终返回键入为的值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 stringfunction checkIfContainsNumber(myString) {  return /\d/.test(myString);}enterName();我们的第二个函数checkIfContainsNumber使用匹配数字的正则表达式来解决问题的第二部分(d在这种情况下)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答