使用else if语句检查大写、小写或数字字符



我一直在尝试解决这个问题,以检查一个字符是大写,小写还是数字,我已经能够为大写和小写做这件事,但我不能为数字做这件事。

let letterOrNumber = prompt("Enter an uppercase letter, a lowercase letter or a number");
let upperCaseLetter = letterOrNumber.toUpperCase();
let lowerCaseLetter = letterOrNumber.toLowerCase();
let userNumber = parseInt(letterOrNumber)
if (letterOrNumber === upperCaseLetter) {
console.log(letterOrNumber + " is an uppercase letter.");
}
else if (letterOrNumber === lowerCaseLetter) {
console.log(letterOrNumber + " is a lowercase letter.");
}
else if (letterOrNumber === userNumber) {
console.log(letterOrNumber + " is a number.");
}
else {
console.log(letterOrNumber + " is not a letter or number");
}

对于单个字符串字符,您可以使用!isNaN(notnot a Number)。
另外,在匹配Alpha字符

之前,确保首先去掉数字

const letterOrNumber = prompt("Enter an uppercase letter, a lowercase letter or a number");
const upperCaseLetter = letterOrNumber.toUpperCase();
const lowerCaseLetter = letterOrNumber.toLowerCase();
const isNum = !isNaN(letterOrNumber);
if (isNum) {
console.log(letterOrNumber + " is a number.");
} else if (letterOrNumber === upperCaseLetter) {
console.log(letterOrNumber + " is an uppercase letter.");
} else if (letterOrNumber === lowerCaseLetter) {
console.log(letterOrNumber + " is a lowercase letter.");
} else {
console.log(letterOrNumber + " is not a letter or number");
}

isNaN检查是否为数字

let letterOrNumber = prompt("Enter an uppercase letter, a lowercase letter or a number");
let upperCaseLetter = letterOrNumber.toUpperCase();
let lowerCaseLetter = letterOrNumber.toLowerCase();

if (!isNaN(letterOrNumber)) {
console.log(letterOrNumber + " is a number.");
} else if (letterOrNumber === upperCaseLetter) {
console.log(letterOrNumber + " is an uppercase letter.");
} else if (letterOrNumber === lowerCaseLetter) {
console.log(letterOrNumber + " is a lowercase letter.");
} else {
console.log(letterOrNumber + " is not a letter or number");
}

除了其他答案之外,我想指出的是,您的代码目前不能用于数字情况的原因是因为您正在比较letterOrNumber,这是一个字符串,userNumber,这是一个数字。类型不匹配。因此,条件为假,并移到else分支。

另一种方法是使用regex来match大写字符、小写字符或数字。该方法将捕获像_这样的字符或像Š这样带有变音符号的字符,并适当地记录它们的输出。

function check(str = '') {
const regex = /([A-ZÀ-ž])|([a-zà-ž])|([0-9])/;
const match = str.match(regex);
// `match` returns an array, so if it exists (has length)
if (match) {
// `slice` off the first element (which is the complete match)
// and then find the index of the element which isn't undefined
const index = match.slice(1).findIndex(el => el);
// You can then log the result based on the index
switch(index) {
case 0: return 'Uppercase';
case 1: return 'Lowercase';
case 2: return 'Number';
}
}
// Returns "none` if there is no match
return 'None';
}
console.log(check('_'));
console.log(check('1'));
console.log(check('ž'));
console.log(check('A'));
console.log(check('z'));
console.log(check('+'));
console.log(check('/'));
console.log(check('B'));
console.log(check('Š'));
console.log(check(undefined));

最新更新