С выхода я, вероятно, предположим, что вы просто хотите проверить, если username
состоит, по меньшей мере, один ряд, на самом деле: цифры.
// iterate over the input
for (var i = 0; i < username.length; i++) {
// check if it is a number (not a digit but that's the same here)
if (isFinite(username.charAt(i))) {
result = true;
// The requirement "one or more numbers" is fulfilled,
// we can break out of the loop
break;
}
else {
result = false;
}
// print something according to "result"
if(result === true){
document.write('The username consists of one or more numbers.');
} else {
document.write('The username must consist of one or more numbers.');
}
}
Вы должны пройти по всей длине строки, чтобы узнать, есть ли нет номера, но если вы не хотите, чтобы выяснить, есть ли любого количество в нем.
Теперь, если вы хотите протестировать, если он состоит из только цифр, вы должны изменить требования, они уже слишком неоднозначны.
Дополнительные советы:
вам нужно проверить вход, то всегда должны проверить пользовательский ввод!
Вы должны знать, что строки JavaScript - это UTF16. Редко проблема, но легко получается, если вы перебираете строки JavaScript.
String.charAt()
возвращает символ, а не число. Не полагайтесь на автоматические преобразования в JavaScript, вы слишком легко стреляете в ногу, если полагаетесь на нее, но если вы этого не сделаете, будьте осторожны.
, пожалуйста, не используйте document.write
, используйте либо консоль, если она доступна, либо измените текстовый узел элемента HTML.
С этих точек в виду, вы можете получить что-то вроде этого:
// make a list of digits
var digits = ['0','1','2','3','4','5','6','7','8','9'];
// ask the user for a username
var username = prompt("Please enter a your username:");
// check input
if (username.length === 0) {
console.log('no username given');
} else {
for (var i = 0; i < username.length; i++) {
// indexOf searches for the same type, that's why the digits above
// are strings with quotes around them
if (digits.indexOf(username.charAt(i)) >= 0) {
result = true;
// The requirement "one or more numbers" is fullfilled,
// we can break out of the loop
break;
}
else {
result = false;
}
}
// print something according to "result"
if (result === true) {
console.log('The username consists of one or more numbers.');
} else {
console.log('The username must consist of one or more numbers.');
}
}
Выше один вариант много и легко может привести к острой дискуссии на некоторых форумах (не здесь! Конечно, нет! ;-)), но я надеюсь, что это поможет.
Здравствуйте, убедитесь, что у вас нет никаких синтаксических ошибок. – castle
Вы должны быть более наглядными, что вы хотите получить от нас? вам нужно разместить сообщение с вопросом – TrojanMorse
Когда я ввожу имя пользователя, ничего не появляется. – Nicole