我有这样的字符串
var str = "<div class=\"@@obj.classname@@\" style="\@@obj.color@@\">@@obj.content@@</div>";
我想创建一个动态更改它并获得此结果的函数
var result = "<div class=\"" + opt.obj.classname + "\" style="\" opt.obj.color + "\">" + opt.obj.content + "</div>";
可以这样做吗?我怎么能这样做?替换功能可能有帮助吗?谢谢
答案 0 :(得分:2)
您可以使用eval
在字符串中执行某些代码。在此之前,您需要确保您的字符串是正确的代码,因此您需要将@@参数@@替换为包含'
和+
的参数。像这样:
var str = "'" + str.replace(/@@(.*?)@@/g, "' + opt.$1 + '") + "'";
var result = eval(str);
答案 1 :(得分:1)
也许试试
eval "var result = " + str.replace(/@@(.*?)@@/g, '" + opt.$1 + "');