gpt4 book ai didi

javascript - 用 javascript 对象替换字符串值

转载 作者:数据小太阳 更新时间:2023-10-29 05:49:35 24 4
gpt4 key购买 nike

我目前正在为 NodeJs 制作一个小模块。为此,我需要一点帮助。

我会这样说的。我有一个带字符串的变量。它包含一个字符串 html 值。现在我需要用我的对象 { "title": "my title"} 替换 $(title) 这样的东西。这可以扩展到用户提供的任何东西。这是当前代码。我认为我需要 RegEx 来执行此操作。你们能帮我解决这个问题吗?

var html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document $(title)</title>
</head>
<body>

<h1>Test file, $(text)</h1>

</body>
</html>`;

function replacer(html, replace) {
// i need a regex to replace these data
//return replacedData;
}

replacer(html, { "title" : "my title", "text" : "text is this" });

最佳答案

您可以使用正则表达式来使用简单的模板函数,

var replacer = function(tpl, data) {
var re = /\$\(([^\)]+)?\)/g, match;
while(match = re.exec(tpl)) {
tpl = tpl.replace(match[0], data[match[1]])
re.lastIndex = 0;
}
return tpl;
}

像这样使用

var result = replacer(html, { "title" : "my title", "text" : "text is this" });

jsfiddle

detail here

编辑

其实如评论中提到的torazaburo,可以重构为

var replacer = function(tpl, data) {
return tpl.replace(/\$\(([^\)]+)?\)/g, function($1, $2) { return data[$2]; });
}

jsfiddle

希望对你有帮助

关于javascript - 用 javascript 对象替换字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com