如何使用“else if”语句来注册数字或特殊字符?

问题描述 投票:0回答:1

我正在尝试获取大写字母、小写字母或数字的输入,并输出输入是这三个字符之一还是特殊字符。当我输入大写或小写字母时,程序能够识别差异,但是当我输入数字或特殊字符时,它总是返回大写字母。

let upperLowerNumber = prompt("Please enter either an uppercase letter, a lower case letter or a number:");

if(upperLowerNumber === upperLowerNumber.toUpperCase()){
    console.log(`${upperLowerNumber} is an uppercase letter.`);
}
else if(upperLowerNumber === upperLowerNumber.toLowerCase()){
    console.log(`${upperLowerNumber} is a lowercase letter.`);
}
else if(upperLowerNumber == Number.isInteger(upperLowerNumber)){
    console.log(`${upperLowerNumber} is a number.`);
}
else  {
    console.log(`${upperLowerNumber} is not a letter or number.`);
}
javascript
1个回答
0
投票

Number.isInteger() 方法返回一个布尔值,指示给定值是否为整数,但仅当该值已经是数字时才有效。在您的例子中,upperLowerNumber 变量包含一个字符串值,因此 Number.isInteger() 检查将始终失败。

要检查输入是否为数字,可以使用 isNaN() 函数,如果输入不是数字,该函数返回 true。这是您的代码的更新版本:

let upperLowerNumber = prompt("Please enter either an uppercase letter, a lower case letter, a number, or a symbol:");

if (!isNaN(upperLowerNumber)) {
    console.log(`${upperLowerNumber} is a number.`);
} 
else if (/[^a-zA-Z]/.test(upperLowerNumber)) {
    console.log(`${upperLowerNumber} is an symbol.`);
} 
else if (upperLowerNumber === upperLowerNumber.toUpperCase()) {
    console.log(`${upperLowerNumber} is an uppercase letter.`);
} 
else if (upperLowerNumber === upperLowerNumber.toLowerCase()) {
    console.log(`${upperLowerNumber} is a lowercase letter.`);
} 



© www.soinside.com 2019 - 2024. All rights reserved.