对字符串执行简单的数字测试

时间:2013-10-26 20:59:02

标签: javascript string digit

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

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

所以我需要一个测试来查看字符串中是否有任何数字。我到目前为止:

var x = prompt(“输入任意字符”); (例如hello123)

var y =“0123456789”;

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

这就是我的全部!希望这不应该太复杂。 (等不及那个“噢呀......”那一刻!)

1 个答案:

答案 0 :(得分: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 here中的正则表达式以及使用它们的here字符串方法。


我仍在猜测你的问题的真正界限是什么,但是如果没有正则表达式并只使用你在评论中提到的函数,你可以这样做:

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