cergmin
@cergmin
Developer

Как посчитать пример в input?

У меня есть input:
<input type="text" class="calc" value="1+2">
И есть скрипт, который выводит 1+2, вместо желательных 3.
var math = $('.calc').val();
   alert(math);

Как сделать, что бы скрипт, который бы считал пример?
P.S. Валидация уже есть.
  • Вопрос задан
  • 572 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
  1. Убедиться, что в выражении нет ничего, кроме цифр, десятичной точки и арифметических операторов + - * / хотя надо бы ещё и скобки разрешить и расширить список другими валидными операторами и методами..
  2. выполнить eval() примерно так eval( "var result = " + math + ";" )


Пример:
function calc() {
	var result, math = $('.calc').val();
	if( math.trim().match(/[^0-9\.\*\/+\-\(\)%&~]/)) {
	  result = "недопустимые символы";
	} else {
	  try {	eval ('result = ' + math + ';') }
		catch(e) { result = "плохая формула" }
	}
	$('#out').text( result);
}

$('.calc').on('input', calc);
calc();

Рабочий пример
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexXYZ
@AlexXYZ
O Keep Clear O
Нашёл пример решения вашей задачи: https://github.com/wangyanxi/calculator

32b32a00bebf47ae821f76f651bae485.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы