簡體   English   中英

Javascript將字符串的一部分替換為變量

[英]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)
});

http://jsfiddle.net/uZbk8/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM