[英]Javascript replace parts of string to variables
我希望進行搜索並替換為字符串。 它搜索以“ $”開頭的任何單詞,並將其替換為數組中的值。 例如,如果字符串是:
[div class='news'][h4]$title[/h4][p]$desc[/p][/div]
它將[]替換為<>(已完成)。 但是然后我希望它用數組中的數據替換$ title。 因此,data [“ title”]和$ desc將替換為data [“ desc”]。 我到目前為止的代碼是
var obj = $('#'+id);
var url = $(obj).attr('loadJSON');
var format = $(obj).attr('responseFormat');
$.getJSON(url, function(data) {
var html = "";
for(var i=0;i<data.length;i++) {
var tmp = format;
tmp = tmp.replace(/\[+(.*?)\]+/g,"<$1>");
tmp = tmp.replace();
}
});
格式是將替換的字符串,數據(來自JSON響應)是我希望變量更改為的數組。
有人可以幫我嗎? 提前致謝
然后添加為最后一個替換
tmp = tmp.replace(/\$([a-z]+)/gi, function(match, v) {
return data[v] || v;
})
請注意,在data[v]
未定義的情況下,您可以返回其他內容,例如data[v] || ["not found", v].join(' ')
data[v] || ["not found", v].join(' ')
只是為了跟蹤缺少什么變量
我不是JS專家,但是從很多方面來看這都是錯誤的...您的數據對象應該是JS對象,類似於{ title: 'Generic title.', description: 'It's a generic title' }
。
為什么不將這些值放入段落元素,然后將其插入div(即,將它們附加)。 像這樣:
$.getJSON(url, function(data) {
$('div.news').append($('<p />').text(data.title));
$('div.news').append($('<p />').txt(data.description));
});
你可以做
tmp = tmp.replace(/\$([a-z]+)/gi, function(match) {
match = match.replace('$', '');
return (data[match] || match)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.