Регулярное выражение функции
Пишу сайт, понадобилось сделать регулярное выражение функции split, а точнее менять split(a, b) на a.split(b). Написал регулярное выражение и функцию, которая его обрабатывает
function expression(v) {
var splitmatch = v.match(/split\(.*\)/g) || [];
splitmatch.forEach(function (e) {
var thisfunc = parseFunction(e);
alert(thisfunc.params[1]);
v=v.replace(e, thisfunc.params[0]+".split("+thisfunc.params[1])+")";
})
return v;
}
Но есть одна проблема - регулярное выражение после закрывающей скобки продолжает искать дальше, например
expression("split(a,b)") вернёт a.split(b), но expression("split(a,b)[0]") вернёт a.split(b[0])
Что можно сделать, чтобы исправить это?
(с parseFunction(value) всё в порядке, функция возвращает объект из названия функции и массив параметров, переданных ей)