用来自JSON对象的占位符值替换字符串
Substitute string with placeholder values coming from JSON object
我有一个字符串"Good$timeOfTheDay$,$name$"
$timeOfTheDay$和$name$是占位符,它们的值包含在JSON对象中。
var content = { "timeOfTheDay" : "evening",
"name" : "Jack",
"city" : "New York",
"age" : "25",
}
想要用JSON对象的值替换字符串中的占位符。结果字符串为:"晚安,Jack"
想要在javascript中完成此操作。这不涉及与DOM的任何交互。
我猜暴力的方法是通过编写JS代码来进行替换,但有库或其他方法可以做到这一点吗?
感谢任何想法/帮助。谢谢
使用String.split
、String.replace
、Array.map
和Array.join
函数的扩展解决方案:
var content = {"timeOfTheDay" : "evening", "name" : "Jack", "city" : "New York", "age" : "25"},
str = "Good $timeOfTheDay$, $name$", replaced = "";
var parts = str.split(/('$'w+?'$)/g).map(function(v) {
replaced = v.replace(/'$/g,"");
return content[replaced] || replaced;
});
console.log(parts.join("")); // "Good evening, Jack"
附加示例:
...
str = "$name$ lives in $city$. He is $age$";
...
console.log(parts.join("")); // "Jack lives in New York. He is 25"
只需使用String.prototype.replace
函数
var content = { "timeOfTheDay": "evening", "name": "Jack", "city": "New York", "age": "25", }
var str = "Good $timeOfTheDay$, $name$"
var result = str.replace('$timeOfTheDay$', content.timeOfTheDay)
.replace('$name$', content.name);
document.write(result);
var content = { "timeOfTheDay" : "evening",
"name" : "Jack",
"city" : "New York",
"age" : "25",
}
document.getElementById('greeting').placeholder = 'Good ' + content.timeOfTheDay + ', ' +content.name;
<input id='greeting'>
此库可用于替换占位符。这也可以用来递归地替换占位符。https://github.com/tarangkhandelwal/substitutor.js
例如:
nameJson={"first":"John","last":"Doe"}
var fullName=substitator('我的名字是{first}{last}',nameJson);
如果您想使用${var}
调用:
var content = {
timeOfTheDay: 'evening',
name: 'Jack',
city: 'New York',
age: '25'
};
var str = 'Good ${timeOfTheDay}, ${name}. I am from ${city}, ${age} years old';
var parts = str.split(/('$'{'w+?})/g).map(function(v) {
var replaced = v.replace(/'$'{('w+?)}/g, '$1');
return content[replaced] || v;
});
console.log(parts.join(''));
输出
Good evening, Jack. I am from New York, 25 years old
相关文章:
- 需要URL模板占位符查找和替换功能的输入
- 替换字符串中的占位符值
- 用来自JSON对象的占位符值替换字符串
- 函数来替换占位符文本
- 如何缓慢地遍历 jquery 循环,并每次替换占位符文本
- 将上传的图片永久替换为占位符图片
- 将占位符值替换为单击的 span 标记的内部 HTML
- 如何更改占位符,就像元素相互替换一样
- 以递归方式将占位符文本替换为变量的值
- 如何在从数据库异步加载时用占位符替换不存在的图像
- 单独 HTML 文件的占位符表示法,用于创建网页的一小部分并将占位符替换为数据值
- 使用javascript将html占位符文本替换为html元素
- 修改格式模式以替换字符串中的占位符
- 如何替换一个占位符单词
- 将youtube图像占位符替换为视频
- 用空值替换jsonp图像对象的占位符image
- 替换表单提交后的默认占位符
- JS/GAS: For循环加速从电子表格单元格复制,用value替换文档占位符
- 用占位符替换两个关键字的正则表达式,其中1可以是另一个关键字的一部分
- JQuery全局占位符替换