我刚刚开始我的编程之旅,最近我一直在大学学习如何使用 JavaScript。我被困在一个我无法理解的运动中!
问题是:在不使用逻辑运算符的情况下编写数字测试 [提示:字符串运算符]。
所以我需要一个测试来看看字符串中是否有任何数字。我已经做到了:
var x=prompt("输入任意字符"); (例如你好123)
var y="0123456789";
(我认为输入应该以某种方式与 y 变量进行比较,这样我才能得到答案)
这就是我得到的!希望这不应该太复杂。(等不及那个“哦,是的..”时刻!)
我刚刚开始我的编程之旅,最近我一直在大学学习如何使用 JavaScript。我被困在一个我无法理解的运动中!
问题是:在不使用逻辑运算符的情况下编写数字测试 [提示:字符串运算符]。
所以我需要一个测试来看看字符串中是否有任何数字。我已经做到了:
var x=prompt("输入任意字符"); (例如你好123)
var y="0123456789";
(我认为输入应该以某种方式与 y 变量进行比较,这样我才能得到答案)
这就是我得到的!希望这不应该太复杂。(等不及那个“哦,是的..”时刻!)
我不太确定您的问题的确切范围是什么,但是您可以使用正则表达式来检查数字:
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
}
}
}