Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Проверка Поля. Пройдет ли eval?


Автор: Innuendo 29.1.2006, 02:18
У меня есть поле, в которое заводят формулу.
Потом происходят действия с этой формулой через eval.
Когда eval задан не корректно, то просто ничего не вводится.
А как мне можно сделать проверку этого поля? Если eval не пройдёт, чтоб выдало сразу, что в формуле ошибка.
типа если ввели:
(i+j)+a/2
то всё ОК. это все переменные существуют, и всё сработает.
А вот если ввели:
(i+y)+a/2, то скрипт не нашел y и будет ошибка...
или как многие привыкли писать 2j вместо 2*j...

Автор: Ciber SLasH 29.1.2006, 04:47
Код

try {
    var rez = eval("i+j");
}
catch (e) {
    alert(e.description)  // действия при ошибке
}

Автор: Innuendo 14.2.2006, 00:20
если я ввожу зак типа плюс, или умножить и т.д, то он ругается о ошибке smile

Автор: smartov 14.2.2006, 13:36
Цитата(Innuendo @ 13.2.2006, 23:20 Найти цитируемый пост)
если я ввожу зак типа плюс, или умножить и т.д, то он ругается о ошибке

Не ругается. Проверено IE 6.0, FF 1.5, Opera 9.0 TP2
Код

<body>
<script>
var i =1;
var j =2;
var k = 5;
try {
    var rez = eval("(i+j)*k+4");
    alert(rez);
}
catch (e) {
    alert(e.description)  // действия при ошибке
}
</script>
</body>

Автор: Innuendo 14.2.2006, 18:35
я понял почему ошибка.. я поставил проверку на keyup поля..
и когда пользователь заводит 5+ и еще не введ второе значение, то вот скрипт проверял уже такое.. поэтому давал ошибку.
Всё спасибо. проблема решена, вопрос исчерпан! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)