0

我有一个类似字符串的代码。

JAVASCRIPT

var code = "var y1=400; \n\
            update : function(data)    { \n\
            var x1 = 10;\n\
            var x2 = 20;\n\
   }";

我应该在更新函数的主体中添加一些价值,但在 x1.1 之前。我想放入var x0 = 0; 功能体。我写了一个解决方案,

 var parse_str = "update : function(data) {";
                    var position = code.indexOf(parse_str);
                    var tmp_str = parse_str.length;
                    var tmp_num = tmp_str.length;

                    code = code.substr(0, position + tmp_str) + "var x0 = 0;" + code.substr(position + tmp_str);

但这种方式是非常糟糕的解决方案。它取决于字符串中空格元素的数量,例如“ update : function(data) {”。请帮我找到其他解决方案。这个解决方案很糟糕,因为我们依赖update : function(data) {括号之间的“”中的空格。

4

1 回答 1

0

使用正则表达式:

code = code.replace(/update[^{]+?{/, function(s){ return s + 'var x0 = 0;'});

提琴手

于 2013-11-05T00:59:28.980 回答