前言:
项目中遇到某动态表格列需要根据后端配置的模板格式化展示内容,于是考虑可以通过与后端约定特定标识替换模板字段中的内容(如将${name},替换为对应的name值
),参考相关文章后整理方法如下:
格式化方法:
/**
* 格式化模板字段 - 将字符串value中的${xxx}替换为数据中对应字段值,如${name},替换为data中的name值
* @param {*} value 需要替换数据的字符串
* @param {*} data 替换内容对应的json数据
*/
export const formatTemplateField = (value, data) => {
// 分别将json数据 data 中的键名和键值取出存储
const keys = Object.keys(data);
const dataList = keys.map(function(key) {
return data[key];
});
// 遍历键名:判断字符串value中是否包含对应键名。若有,则替换为相应的键值。
for (var i = 0; i < keys.length; i++) {
value = value.replace(
new RegExp("\\$\\{" + keys[i] + "\\}", "gm"),
dataList[i]
);
}
return value;
}
调用:
const record = {
name: '张三',
age: 28
};
const str = formatTemplateField("姓名:${name} 年龄: ${age}", record);
console.log(str); // 输出:姓名:张三 年龄: 28
参考文章:https://blog.csdn.net/qq_37167049/article/details/103784178