比较a-z或A-Z并给出带有开关JavaScript功能的输出

问题描述 投票:3回答:6

我正在学习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;
}

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

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执行此操作。如果切换不可能让我知道:-)

javascript switch-statement
6个回答
3
投票

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

我个人不推荐这个。这只是为了学习。


3
投票

你可以尝试这样的东西。

<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


2
投票

你可以做一个简单的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"););

1
投票

检查角色是否在其他角色之间:

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

1
投票

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

1
投票

还尝试:

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")
© www.soinside.com 2019 - 2024. All rights reserved.