我如何用jquery / js中的response.data替换括号[]之间的文本?

时间:2018-10-01 14:14:40

标签: javascript jquery html ajax

我如何更改[]与response.data对象之间的字符串,如下所示:

var template = "<%= escape_javascript(eval(UserSetting.find_by_user_id_and_setting_name(User.current_user_id, 'own_user_grid_'+ grid_id).value)) %>"

模板输出如下:

<body><p>DocType: [document_summarize_doctype]</p><b>Author ID: [document_author]</b></body>

当我在[document_summarize_doctype]之间使用this.document_summarize_doctype:

构建内容时,我将每次都更改。
$j.each(response.data, function() {  $j('.own_content_overall').append('<div class="own_content">' + template + '<br><span style="border: 1px solid lightblue;"></div>');
          });

有什么帮助吗?

谢谢

2 个答案:

答案 0 :(得分:0)

假设str<body><p>DocType: [document_summarize_doctype]</p><b>Author ID: [document_author]</b></body>

str = str.replace(/\[(.*?)\]/, "[this.document_summarize_doctype]");

答案 1 :(得分:0)

使用此功能,我是在一段时间前在SO上找到的,它不是我的,但是可以完成工作:

var substitute = function(str , sub )  {
    return str.replace(/\[(.+?)\]/g, function($0, $1) {
        return $1 in sub ? sub[$1] : $0;
    });
};

console.log(substitute('your are a [type_of_person]',{ type_of_person : 'good boiii'}))

// output : your are a good boiii

您的代码将如下所示:(如果括号中存在“ item”键,则将替换字符串)

$j.each(response.data, function(item) {
     $j('.own_content_overall').append(substitute('<div class="own_content">' + template + '<br><span style="border: 1px solid lightblue;"></div>', item));
});