Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2015, 19:07
Интересующийся
Отправить личное сообщение для sana Посмотреть профиль Найти все сообщения от sana
 
Регистрация: 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));
Ответить с цитированием
  #2 (permalink)  
Старый 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.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2015, 20:19
Интересующийся
Отправить личное сообщение для sana Посмотреть профиль Найти все сообщения от sana
 
Регистрация: 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));
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2015, 20:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

sana,
if (x != +x ) alert('не цифра')
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2015, 20:44
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 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())
Ответить с цитированием
  #6 (permalink)  
Старый 31.03.2015, 20:52
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

рони,
с любой пустой, пробельной, с табами, с переносами строк и тп, не сработает, кстати.
Ответить с цитированием
  #7 (permalink)  
Старый 31.03.2015, 20:58
Интересующийся
Отправить личное сообщение для sana Посмотреть профиль Найти все сообщения от sana
 
Регистрация: 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));
Ответить с цитированием
  #8 (permalink)  
Старый 31.03.2015, 21:16
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 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()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как поменять формат переменной, чтоб комп понял, что это не текст, а команды? FirstFrost Общие вопросы Javascript 2 15.07.2010 22:33
Как проверить что сервер безошибочно выполнил запрос php? PAMAC Серверные языки и технологии 7 20.02.2010 09:10
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39