Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как проверить, что введенные пользователем цифры - это действительно цифры? (https://javascript.ru/forum/misc/54782-kak-proverit-chto-vvedennye-polzovatelem-cifry-ehto-dejjstvitelno-cifry.html)

sana 31.03.2015 19:07

как проверить, что введенные пользователем цифры - это действительно цифры?
 
Добрый вечер,
Только начала изучать 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

:-?
var x = '5';
    alert(x == +x);
    x = '?';
    alert(x == +x);

Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

sana 31.03.2015 20:19

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

sana,
if (x != +x ) alert('не цифра')

theKingOfJava 31.03.2015 20:44

getInput=function(){
 var str
 return /\d+/.test(str=prompt("print number: ")) ?
 +str : function(){alert("incorrect input; try again, please"); return getInput()}()
}
alert(getInput()+getInput())

theKingOfJava 31.03.2015 20:52

рони,
с любой пустой, пробельной, с табами, с переносами строк и тп, не сработает, кстати.

sana 31.03.2015 20:58

В этом случае, если пользователь все же ввел не цифру в первом случае, то программа продолжает работать. Я попробовала написать сама код. Но мне нужно, чтобы весь код был в 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));

theKingOfJava 31.03.2015 21:16

Цитата:

Сообщение от 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()


Часовой пояс GMT +3, время: 18:14.