Альтернатива eval()
В input вводится строка типа ((22-8)*2)/4 и нужно вычислить её результат. Использовал eval(), но метод неудовлетворителен и нужна альтернатива.
|
Если боишься, что кто-нибудь впишет в поле скрипт, то просто фильтруй данные.
http://learn.javascript.ru/play/koD4sb <!DOCTYPE HTML> <html> <head></head> <body> <input id="myInput" type="text"> <input id="myButton" type="button" value="Вычислить"> <script type="text/javascript"> myInput.oninput = function() { this.value = this.value.replace(/[^\d()*\/+-]+/g, ''); }; myButton.onclick = function() { var result; try { result = eval(myInput.value); } catch(e) { result = 'Неконкретный пример'; } alert(result); }; </script> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 14:42. |