【问题标题】:Detect Special Characters in user input检测用户输入中的特殊字符
【发布时间】:2022-11-22 22:40:26
【问题描述】:

尝试检测用户输入是否为特殊字符,尝试了几种不同的方法但无法使代码正确运行,导致输出用户字符为大写字母。

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

【问题讨论】:

  • 小心! '?' == '?'.toUpperCase()true,但? 不是严格意义上的“大写字母”。实际测试的是它不包含小写字母. “包含大写字母”和“不包含小写字母”之间存在逻辑差异

标签: javascript user-input special-characters


【解决方案1】:

由于您可能认为“特殊”的大多数字符都没有大写变体,因此检查字符是否为大写的测试总是会成功。

const specialCharacter = "$";
console.log(specialCharacter === specialCharacter.toUpperCase());

您需要首先确定您认为哪些字符是“特殊”的(或哪些不是并进行负面测试),然后为此编写测试你的大写测试。

【讨论】:

    【解决方案2】:

    您可以使用正则表达式。

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

    这应该工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      相关资源
      最近更新 更多