javascript中包含'{}'的字符串替换
string replacement in javascript when contains `{}`
我使用模板和javascript为json数据生成html,这是模板:
<div id="template">
<div class="iwContainer">
<div class="iwHeaderContainer">
<div class="iw-title-container">
<span class="titleText">${name}</span> <a target="_blank" href="detail?fid=${id}" class="titleLink">Detail</a>
</div>
</div>
<div class="iwRichContainer">
<div class="iw-g-font">Address:${address}</div>
</div>
@{setsearchTemplate}
</div>
</div>
Js:
buildInfoContent : function(item) {
var tmp = $("#template").html();
if (tmp) {
tmp = tmp.replace(/'$'{('w*)'}/g, function(m, key) {
return item.hasOwnProperty(key) ? item[key] : "";
});
return tmp;
}
}
我称之为:
buildInfoContent({name:'name',id:2,address:'address'});
除了${id}
,所有的palcehodler都被替换了。
.........<span class="titleText">${name}</span> <a target="_blank" href="detail?fid=$%7bid%7d" class="titleLink">Detail</a>.......
所以id
没有被替换,如何修复?
看起来您的浏览器正在编码您的{}
字符。你必须在你的regexp中考虑到这一点…
这是未经测试的,但是…/'$('{|%7b)('w*)('}|%7d)/
这个应该可以,或者类似的东西…这个想法是他们的想法。有时浏览器会对特殊字符做一些奇怪的事情。
EDIT:要匹配键(中间匹配的组),尝试使用传递给回调的第三个参数,如本例所示:
相关文章:
- 字符串替换-不支持格式字符'}'
- Unicode字符串替换不适用于完整的变音符号阿拉伯文本
- Javascript 将字符串替换为
返回为空 - 字符串替换只替换第一个匹配项,可以'不要让它全球化
- javascript字符串替换$1(如果它是某个值)
- 字符串替换正则表达式,开头为空格
- 将 url 中的一个字符串替换为另一个字符串
- 在HTML文本框中查找某些子字符串,然后用其他字符串替换它们
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 字符串替换为从右向左的语言(阿拉伯语)
- 将字符串替换为用户键入的文本
- 字符串替换javascript
- JavaScript 将多行字符串替换为多行字符串
- Javascript字符串替换不起作用
- 字符串替换不'当通过android webView JavascriptInterface传递字符串时无法工作
- 我正在尝试用另一个字符串替换一个字符串
- 字符串替换最后一个字符出现的斜杠
- 将具有的字符串替换为$
- 基于查询字符串替换HTML
- Javascript字符串替换在满足长度而不是instantanoeus之前不会生效