Как я могу заменить текст в скобках [] на response.data в jquery / js? - PullRequest
0 голосов
/ 01 октября 2018

как я могу изменить строку между [] с объектом 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 голосов
/ 01 октября 2018

Используйте эту функцию, я нашел ее некоторое время назад на 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));
});
0 голосов
/ 01 октября 2018

Предполагая, str является <body><p>DocType: [document_summarize_doctype]</p><b>Author ID: [document_author]</b></body>:

str = str.replace(/\[(.*?)\]/, "[this.document_summarize_doctype]");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...