Показать сообщение отдельно
Старый 04.07.2003, 16:08
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
если в строке только плюсы и минусы - можно сделать так:
Код:
evaluate = function (str) {
	var result = 0;
	var p = str.split("+");
	for (var i = 0; i<p.length; i++) {
		if (typeof (p[i]=p[i].split("-")) != "object") {
			result += Number(p[i]);
		} else {
			result += (p[i][0] != "") ? Number(p[i][0]) : 0;
			p[i].splice(0, 1);
			for (var j = 0; j<p[i].length; j++) {
				result -= Number(p[i][j]);
			}
		}
	}
	return result;
};
//
trace(evaluate("2+2"));
trace(evaluate("2+2-2+2"));
trace(evaluate("10+2+2-3-5"));
trace(evaluate("-5+1+2-5+3+4-5"));
...если есть деление и умножение, да еще скобки не дай бог, тогда придется много морочиться :) можно канеш взять модуль regEXP, но нафига оно надо-то ? :)