Выполнение простого цифрового теста для строки
Я только начал свое путешествие в программировании, и в последнее время я изучал, как использовать JavaScript в университете. Я застрял на упражнении, которое я просто не могу обдумать!
Вопрос в следующем: написать цифровой тест без использования логических операторов [подсказка: строковые операторы].
Поэтому мне нужно проверить, есть ли какие-либо цифры в строке. Я дошел до:
var x = prompt ("Введите любые символы"); (например, hello123)
var y = "0123456789";
(Я подумал, что входные данные должны как-то сравниваться с переменной y, чтобы я мог получить ответ)
Это все, что я получил! Надеюсь, это не должно быть слишком сложно. (Не могу дождаться этого момента "О, да.."!)
1 ответ
Я не совсем уверен, каковы точные границы вашей проблемы, но вы можете использовать регулярное выражение для проверки на цифры:
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
}
}
}