如何将输入类型测试到有条件语句的提示中-JavaScript



如果我想写一个if语句在网页上弹出的提示,我希望它是字符串,我只能执行此操作。例如,如果您输入字符串,它将说"接受用户名",但是如果您输入一个数字,则会说"用户名被拒绝"。到目前为止,我说的代码每次都接受用户名。

let webUser = prompt("Please create a username", "typehere");
if (webUser != null) {
  document.getElementById("root").innerHTML =
    "Hello " + webUser + "! How are you today?";
}
if (typeof webUser == 'string' || webUser instanceof String) {
  alert('Username Accepted')
} else {
  alert('Username Denied')
}

如果要在没有RegEx的情况下实现:

let webUser = prompt("Please create a username", "typehere");
if (webUser != null) {
	document.getElementById("root").innerHTML = "Hello " + webUser + "! How are you today?";
}
if (isNaN(+webUser)) {  
	alert('Username Accepted');
}
else {
	alert('Username Denied') ; 
}
<div id="root">
</div>

您从 prompt获得的值类型始终是字符串,即使它中有数字。如果要检查字符串是否仅由数字组成,则可以使用正则表达式:

const webUser = prompt("Please create a username", "typehere");
if (/^d+$/.test(webUser.trim())) console.log('invalid');
else console.log('valid');

prompt总是返回字符串数据类型。您要确定的是该字符串作为整数是否可解析。您可以在这里看到一些如何做的示例:如何在JavaScript中分析int

最新更新