尝试检测用户输入是否是一个特殊字符,已经尝试了一些不同的事情,但无法让代码正确运行,始终输出用户字符是大写字母。
let user_character = prompt("Enter either a Capital Letter, Lowercase Letter, or a Number.");
//Checks if the input character is an integer.
if(Number.isInteger(user_character)){
console.log(`You input: ${user_character} nThat is a number.`);
}
//Checks if the input character is a capital letter.
else if(user_character === user_character.toUpperCase()){
console.log(`You input: ${user_character} nThat is an upper case letter.`);
}
//Checks to see if the input character is a lower case letter.
else if(user_character === user_character.toLowerCase()){
console.log(`You input: ${user_character} nThat is a lower case letter`);
}
//Checks to see if the input is a special Character
else if(user_character ===){
console.log("You input: " + user_character + ", That is a special character");
}
else{
console.log("Unfortunately: " + user_character + ", Does not match the requested input.");
}
对于检查特殊字符,一种解决方案是将它们添加到变量
中var specialCharacters= /[ `!@#$%^&*()_+-=[]{};':"\|,.<>/?~]/;
然后你可以使用RegExp test()来检查,例如
var specialCharacters= /[ `!@#$%^&*()_+-=[]{};':"\|,.<>/?~]/;
// if is not any special character
if(!specialCharacters.test(user_character)){
//do something
}
您可以在这里查看RegExp test()的更多信息:https://www.w3schools.com/jsref/jsref_regexp_test.asp
因为大多数字符你可能会认为是"特殊的";不要有大写的变体,你的测试看字符是否大写总是成功的。
const specialCharacter = "$";
console.log(specialCharacter === specialCharacter.toUpperCase());
你需要首先决定哪些字符是"特殊的"。(或者哪些不是,并做一个阴性测试),然后在之前为编写测试你的大写测试
可以使用正则表达式
//Checks to see if the input is a special Character
let pattern = /A-Za-z0-9/;
else if (!pattern.test(user_character)){
console.log("You input: " + user_character + ", That is a special character");
}
应该可以。