-1
A
回答
2
這是相當瑣碎當你真正與一些預定義的對象(包含所有數據)的財產處理。例如:
var data = {
foo: 'FOOFOO',
bar: 'BARBAR'
};
var tplFoo = "abcde${foo}fghz";
var tplBar = "abcde${bar}fghz";
var tplBaz = "abcde${baz}fghz";
[tplFoo, tplBar, tplBaz].forEach(function(tpl) {
console.log(
tpl.replace(/\$\{([^}]+)}/g, function(match, gr) {
return gr in data ? data[gr] : match;
})
);
});
// ... this gives you:
// abcdeFOOFOOfghz
// abcdeBARBARfghz
// abcde${baz}fghz
這或多或少是模板功能的工作原理。你可以用全局變量做同樣的技巧(因爲它們可以通過全局對象訪問)。例如:
// on the global level
var foo = 'FOOFOO';
var bar = 'BARBAR';
...
tpl.replace(/\$\{([^}]+)}/g, function(match, gr) {
return gr in window ? window[gr] : match;
})
與當地人做它甚至可以,但你必須在這裏使用eval
:
...其中,即使在這種簡單的情況下,可能導致非常不需要的後果。
0
是這樣的嗎?
var str = "abcde${variable}zzz"
var key = str.match(/\$\{.*\}/g);
var listOfelements = str.split(key[0]);
如果你有一個以上的變量,你可能需要做一些額外的
0
var config = {
'foo': 'abc'
};
var str = 'foo: ${foo} bar: ${bar}';
var matches = str.match(/(\$\{\w+\})/g);
if(matches !== null) {
for(var i=0,l=matches.length;i<l;i++) {
var token = matches[i];
var tvar = token.substr(2,token.length-3);
if(tvar in config) {
str = str.replace(token,config[tvar]);
}
else {
str = str.replace(token,'null');
}
}
}
console.log(str);
+0
爲什麼首先用'match'來比較字符串,當你最終還是'replace'時,我想知道?這一切都可以用一種方法完成,爲'replace'函數提供回調參數。 – raina77ow
+0
我已經說清楚了,以便他在做替換之前可以用結果做事。顯然這種方法比較原始。 –
0
這是你在找什麼?
var x = "abcde${variable}zzz";
alert(x.replace(/{.*}/, 'new_word'));
或者,如果你想讓它與指數做我發現自己SO答案..這裏是link
相關問題
- 1. AS3字符串分割保持標籤
- 2. R分割字符串並保持子串右邊的匹配?
- 3. 如何使用多字符分隔符分割字符串,並保持分離
- 4. 分割字符串,並保存爲XML
- 5. 字符串分割保持逗號字符串
- 6. 分割字符串,但保持分隔符
- 7. 正則表達式分割字符串,並保持分隔符在AWK
- 8. 如何分割字符串並使用boost :: split保持分隔符?
- 9. 分割字符串,並保持分隔符在JavaScript中加條件
- 10. 分割一個字符串,並保留分隔符
- 11. 如何在Java中分割字符串並保留分隔符?
- 12. 分割字符串,同時保持分隔
- 13. 分割字符串,或保持標點符號
- 14. 分割分隔字符串中的一列,並保持其他列的完整
- 15. 字符串分割,並得到perticular串
- 16. 分割字符串,保留數
- 17. 分割字符串 - 保留左邊
- 18. 分割字符串
- 19. 分割字符串
- 20. 分割字符串
- 21. 分割字符串
- 22. 分割字符串
- 23. 分割字符串
- 24. 分割字符串
- 25. 分割字符串
- 26. 分割字符串
- 27. 分割字符串
- 28. 分割字符串
- 29. 分割字符串
- 30. 分割字符串
,什麼是使用'replace',請問避免的呢? – raina77ow
@Raina,我想首先檢查字符串中指定的變量是否真的先存在。該字符串來自配置文件。 – user994165