检测用户输入中的特殊字符



尝试检测用户输入是否是一个特殊字符,已经尝试了一些不同的事情,但无法让代码正确运行,始终输出用户字符是大写字母。

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");
}

应该可以。

相关内容

最新更新