比较 a-z 或 A-Z 并使用 switch JavaScript 函数给出输出

Compare if a-z or A-Z and give output with switch JavaScript function

我正在学习 JavaScript。非常新,了解基本知识。我正在玩 JavaScript.

的各种选项

我正在比较用户输入的 a-z(小写)和 A-Z(大写)。并根据输入给出答案。

通常我可以用这个长代码来做到这一点:

var x = prompt("Enter Your character");
switch (x) {
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
    case 'u':
    case 'v':
    case 'w':
    case 'x':
    case 'y':
    case 'z':
        document.write("Lower case");
        break;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
        document.write("Upper case");
        break;
    default:
        document.write("It is number");
        break;
}

我想使用 switch 实现相同的输出,但代码更少!像这样:

var x = prompt("Enter Your character");
switch(x) {
    case x >= 'a'|| x <= 'z':
        document.write("Lower case");
        break;

    case x >= 'A' || x <= 'Z':
        document.write("Upper case");
        break;

    default:
        document.write("It is number");
        break;
}

有帮助吗?

拜托,我只想用开关功能来做这个。我知道我可以用 if/else 函数做到这一点,但我想用开关来做到这一点。如果不能用 switch 让我知道:-)

你可以用这样的东西试试。

<script>
var x=prompt("Enter Your character");

if (x.test(/[a-z]/)) {
document.write("Lower case");
} else if (x.test(/[A-Z]/)) {
document.write("Upper case");
} else {
document.write("It is number");
}
</script>

您可以在此处查看更多信息:https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

你可以做一个简单的 if/else

var x=prompt("Enter Your character");
if(!isNaN(x))
    console.log("It is number");
else if(x.toLowerCase()==x)
    console.log("Lower case");
else if(x.toUpperCase()==x)
    console.log("Upper case"););

检查字符是否在其他字符之间:

var x=prompt("Enter Your character");
if (x >= '0' && x <= '9')
    alert("number!");
else if(x >= 'a' && x <= 'z')
    alert("lowercase!");
else if(x >= 'A' && x <= 'Z')
    alert("uppercase!");
else
    alert("not a letter!");

case 语句的参数是用来进行相等比较的东西,你不会在那里进行比较。如果要进行比较,请使用 if,而不是 switch。此外,您应该将比较与 &&,而不是 ||

结合起来
if (x >= 'a' && x <= 'z') {
    document.write('Lower case');
} else if (x >= 'A' && x <= 'Z') {
    document.write('Upper case');
} else if (x >= '0' && x <= '9') {
    documennt.write('Number');
} else {
    document.write('Something else');
}

switch 语句使用严格比较将输入表达式与每个 case 语句进行比较。

因此在 switch 子句中使用 true 并在 case 子句中指定计算结果为 true 的表达式:

var x = prompt("Enter Your character");
switch (true) {
  case x >= "a" && x <= "z":
    alert("Lower case");
    break;
  case x >= "A" && x <= "Z":
    alert("Upper case");
    break;
  default:
    alert("Something else");
    break;
}

个人不推荐这个。仅供学习使用

也试试:

var x = prompt("Enter Your character");
var find = x.match(/([a-z]*)([A-Z]*)([0-9]*)/);
var type = ["Lower case","Upper case", "It is number"];

document.write(find ? type[find.lastIndexOf(x)-1] : "Unknown char")