我刚开始编程之旅,最近我一直在学习如何在大学使用JavaScript。我被困在一个我无法理解的运动中!
问题是:在不使用逻辑运算符的情况下编写数字测试[提示:字符串运算符]。
所以我需要一个测试来查看字符串中是否有任何数字。我到目前为止:
var x = prompt(“输入任意字符”); (例如hello123)
var y =“0123456789”;
(我认为输入应该以某种方式与y变量进行比较,以便得到答案)
这就是我的全部!希望这不应该太复杂。 (等不及那个“噢呀......”那一刻!)
答案 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
}
}
}