31.03.2015, 19:07
|
Интересующийся
|
|
Регистрация: 31.03.2015
Сообщений: 15
|
|
как проверить, что введенные пользователем цифры - это действительно цифры?
Добрый вечер,
Только начала изучать javascript , и каша в голове с функциями. Мне нужно было написать код рассчета суммы двх введенных пользователем цифры. Причем расчет суммы и проверка цифер, что это цифры должны делаться через функцию. Код функции для расчета суммы ямнаписала, как проверить, что введенные цифры - это цифры?
var x = prompt("Введите первую цифру");
var y = prompt("Введите вторую цифру");
function add(x, y)
{
var answer = parseInt(x, 10) + parseInt(y, 10);
return answer;
}
alert(add(x, y));
|
|
31.03.2015, 19:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
var x = '5';
alert(x == +x);
x = '?';
alert(x == +x);
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
31.03.2015, 20:19
|
Интересующийся
|
|
Регистрация: 31.03.2015
Сообщений: 15
|
|
var x = prompt("Введите первую цифру");
var y = prompt("Введите вторую цифру");
function add(x, y)
{
var answer = parseInt(x, 10) + parseInt(y, 10);
return answer;
}
alert(add(x, y));
|
|
31.03.2015, 20:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
sana,
if (x != +x ) alert('не цифра')
|
|
31.03.2015, 20:44
|
Кандидат Javascript-наук
|
|
Регистрация: 31.03.2015
Сообщений: 113
|
|
getInput=function(){
var str
return /\d+/.test(str=prompt("print number: ")) ?
+str : function(){alert("incorrect input; try again, please"); return getInput()}()
}
alert(getInput()+getInput())
|
|
31.03.2015, 20:52
|
Кандидат Javascript-наук
|
|
Регистрация: 31.03.2015
Сообщений: 113
|
|
рони,
с любой пустой, пробельной, с табами, с переносами строк и тп, не сработает, кстати.
|
|
31.03.2015, 20:58
|
Интересующийся
|
|
Регистрация: 31.03.2015
Сообщений: 15
|
|
В этом случае, если пользователь все же ввел не цифру в первом случае, то программа продолжает работать. Я попробовала написать сама код. Но мне нужно, чтобы весь код был в function.
Но не знаю, как это можно сделать. И вообще, мне кажется, что весь код можно написать намного короче. Подскажитк, пожалуйста, как все это можно сделать?
var x = 0
var i=false
do
{
var x = prompt("Введите первую цифру");
if (isNaN (x))
{
alert(x + " - это не цифра. Невозможнотвыполнить операцию.");
}
else if(x == "")
{
alert("Вы забыли ввести значение");
}
else if(x)
{
i=true;
}
}
while (i == false);
var y = 0
var i=false
do
{
var y = prompt("Введите вторую цифру");
if (isNaN (y))
{
alert(y + "- это не цифра. Невозможнотвыполнить операцию.");
}
else if(y == "")
{
alert("Вы забыли ввести значение");
}
else if(y)
{
i=true;
}
}
while (i == false);
function add(x, y)
{
var answer = parseInt(x, 10) + parseInt(y, 10);
return answer;
}
alert(x + "+" + y + "=" + add(x, y));
|
|
31.03.2015, 21:16
|
Кандидат Javascript-наук
|
|
Регистрация: 31.03.2015
Сообщений: 113
|
|
Сообщение от sana
|
то программа продолжает работать
|
продолжает работать, она просит пользователя ввести корректные данные, если он ввел их, все завершается как обычно. Это обычная практика. А Вы что, хотели послать его на 3 буквы?
Сообщение от sana
|
Но мне нужно, чтобы весь код был в function.
|
check=function(){alert(check.getInput()+check.getInput())}
check.getInput=function(){
var str
return /\d+/.test(str=prompt("print number: ")) ?
+str : function(){alert("incorrect input; try again, please"); return check.getInput()}()
}
check()
|
|
|
|