Показать сообщение отдельно
  #7 (permalink)  
Старый 28.05.2015, 18:12
Новичок на форуме
Отправить личное сообщение для ziargon Посмотреть профиль Найти все сообщения от ziargon
 
Регистрация: 27.05.2015
Сообщений: 6

рони,
Большое спасибо за подсказку. Немного модифицировав скрипт я сделал так:
function balance(a) {
        for (var d = /(\u0028)[^\u0028]*?$/,
        e = {
            "(": /\u0028([^\u002F]*?)\u0029/ //скобка которая остается
        }, b, c = !0; c;) b = a, a = a.replace(d, function (a, b) {
            return a.replace(e[b], "[$1]")
        }), b == a && (c = !1);
    return a
    };

    var qq = balance("int(-(-(4*x**2+12))/(x**3+6*x))=5+((2*log(x))/(log(x**2+6)))");
    var pp1 = new RegExp("\\[(.*)\\]\\/\\[(.*)\\]", "g");
    qq = qq.replace(pp1, "\\frac{$1}{$2}");
    var pp21 = new RegExp("\\[", "g");
    var pp22 = new RegExp("\\]", "g");
    qq = qq.replace(pp21, "(");
    qq = qq.replace(pp22, ")");
    alert(qq);

Но он работает только для одной дроби. Возможно сделать, если в строке нескольких дробей? Пока вижу одно решение - порезать строку на части с дробями, но может есть попроще вариант

kostyanet,
Надо будет почитать
Ответить с цитированием