gpt4 book ai didi

javascript - 模板和占位符算法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:08 25 4
gpt4 key购买 nike

首先是一个快速定义:)

  • 模板 - 可能包含占位符的字符串(例如:“hello [name]”)
  • 占位符 - 带有方括号的子字符串(例如:“hello [name]:”中的“name”)。
  • 属性映射 - 以字符串作为值的有效对象

我需要编写一段代码,用属性映射中的匹配值替换占位符(连同方括号)。

例子:对于以下属性图:

{
"name":"world",
"my":"beautiful",
"a":"[b]",
"b":"c",
"c":"my"
}

预期结果:

  • "你好名字"-> "你好名字"

  • “你好[名字]”->“ Hello World ”

  • [b]"-> "c"

  • [a]"-> "c"(因为 [a]->[b]->[c])

  • [[b]]"-> "我的"(因为 [[b]]->[c]->我的)

  • “你好[我的][名字]”->“你好美丽的世界”

最佳答案

var map = {
"name":"world",
"my":"beautiful",
"a":"[b]",
"b":"c",
"c":"my"
};

var str = "hello [my] [name] [[b]]";

do {
var strBeforeReplace = str;
for (var k in map) {
if (!map.hasOwnProperty(k)) continue;
var needle = "[" + k + "]";
str = str.replace(needle, map[k]);
}
var strChanged = str !== strBeforeReplace;
} while (strChanged);

document.write(str); //hello beautiful world my

关于javascript - 模板和占位符算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979312/

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