Показать сообщение отдельно
  #11 (permalink)  
Старый 12.06.2016, 21:26
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

во, через функцию, с проверкой на синтаксис )

function createSolver(vars, expr) {
  try {
	var func = new Function('pow,sin,cos,PI' + (vars ? ',' + vars : ''), 'return (' + expr + ')');
 } catch(exc) {
   return null;
}

  return function() {
  	var args = [Math.pow, Math.sin, Math.cos, Math.PI];
    args.push.apply(args, arguments);
    return func.apply(null, args);
  };
}

var solver = createSolver('x,y', 'pow(x, y) + sin(PI/2)');
var badsolver = createSolver('x,y', '((((((');

alert(solver(2, 3));
alert(badsolver);
Ответить с цитированием