2011-03-13 34 views
1

有沒有簡單的方法來使用正則表達式來查找所有匹配的字符串,然後使用部分結果作爲替換?JavaScript中的變量RegEx字符串替換

例如,請考慮下面的例子:

tpl: '<a href="{link_url}">{link_html}</a>'; 

在這裏,我想運行一個簡單的正則表達式來尋找任何匹配的「{字符串}」模式,然後使用大之間有什麼大括號作爲數組鍵。所以,從例子中的結果將是:

陣列[LINK_URL]和陣列[LINK_HTML]

謝謝!

+0

你希望自己的數組的值是什麼成爲? – 2011-03-13 22:26:30

+0

它們實際上涉及一系列對象,例如: 按鈕:[ {link_url:'google.com',link_html:'Google'}, {link_url:'msn.com',link_html:'MSN'} ] – BenM 2011-03-13 22:29:22

回答

2

如果我理解正確的話,你想是這樣的:

var map = {link_url: 'msn.com', link_html: 'MSN' }; 

var str = '<a href="{link_url}">{link_html}</a>'; 

str = str.replace(/\{(\w+)\}/g, function(m, p1) { 
    return map[p1]; 
}); 

將返回

'<a href="msn.com">MSN</a>' 

參考String.prototoype.replace

+0

謝謝,這很好! – BenM 2011-03-13 23:12:50

+0

@BenM:不客氣:)我很高興這是你想要的,因爲我不是100%確定的。您的描述不是*明確的;) – 2011-03-13 23:17:28