1

我刚刚开始我的编程之旅,最近我一直在大学学习如何使用 JavaScript。我被困在一个我无法理解的运动中!

问题是:在不使用逻辑运算符的情况下编写数字测试 [提示:字符串运算符]。

所以我需要一个测试来看看字符串中是否有任何数字。我已经做到了:

var x=prompt("输入任意字符"); (例如你好123)

var y="0123456789";

(我认为输入应该以某种方式与 y 变量进行比较,这样我才能得到答案)

这就是我得到的!希望这不应该太复杂。(等不及那个“哦,是的..”时刻!)

4

1 回答 1

4

我不太确定您的问题的确切范围是什么,但是您可以使用正则表达式来检查数字:

var x = prompt("Enter any characters");
if (x && x.match(/\d/)) {
    // there are digits in the string
}

或以不同的方式编写(任何一个都有效):

var x = prompt("Enter any characters");
if (x && /\d/.test(x)) {
    // there are digits in the string
}

请注意,这也是在尝试将其用作字符串之前确保它x为非空且不为空,因为如果用户取消提示,它将返回null.

\d在正则表达式中表示匹配任何数字

您可以在此处阅读 javascript 中的正则表达式以及在此处使用它们的字符串方法。


我仍在猜测您的问题的真正界限是什么,但是没有正则表达式并且仅使用您在评论中提到的功能,您可以这样做:

var digits = "0123456789";

// get string from user
var str = prompt("Enter any characters");

// check each digit one at a time
if (str) {
    for (var i = 0; i < digits.length; i++) {
        // see if the next digit is in the string
        if (str.indexOf(digits.charAt(i)) {
            // found a digit
        }
    }
}
于 2013-10-26T21:05:13.373 回答