javascript - 解析文本中的特殊字符串(例如 "%var%")?

标签 javascript

我正在提供带有命令的 Javascript 函数字符串(SVG 路径命令):

eg. "move 10 10 line 50 50"

移动和线条命令

数字x、y坐标

我想向这些命令添加特殊字符串,这将指示函数使用特定变量

eg. "move %mouseX%+1 %mouseY%+1"

其中 %mouseX% 和 %mouseY% 是鼠标 x,y 坐标

如何解析和替换它们?

最佳答案

对于这种类型的字符串操作,作为起点,您可以利用 String.prototype.replace 函数的强大功能,使用其回调函数:

function replaceTokens(str, replacement) {
  return str.replace(/\%([^%]+)\%/g, function (string, match) {
    return replacement[match];
  });
}

replaceTokens("move %mouseX%+1 %mouseY%+1", {mouseX: 100, mouseY: 200});
// returns  "move 100+1 200+1"
replaceTokens("%foo% %bar%!!!", {foo: 'Hello', bar: 'World'});
// returns Hello World!!!
replaceTokens("I'm %name%, and I %action% %place%", {name: 'CMS',
  action: 'love',
  place:'StackOverflow'
}); // "I'm CMS, and I love StackOverflow"

这只是一个简单的例子,说明您可以使用此技术完成哪些事情。这个小功能将使您能够一步执行多个 %token% 替换。

推荐文章:

关于javascript - 解析文本中的特殊字符串(例如 "%var%")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106847/

相关文章:

javascript - 使用 Javascript 根据组中的值选中或取消选中复选框

javascript - 如何让 Visual Studio 从错误列表导航到正确的行?

javascript - 使用 ajax 进行重定向,并在 url 中传递 javascript 变量。

javascript - 有没有办法在phonegap中制作相框应用程序

javascript - 等待结果的调用方法 - 中间值尚未解析

javascript - 当成员使用 discord.js selfmute/selfdeafen/selfunmute/selfundeafen 时,我如何记录他们?

javascript - Bootstrap popover 对于多个位置只有一次

javascript - FlipClock .getTime() 不起作用?不更新返回值

javascript - 有没有办法直接从 Chrome 打印?

javascript - 使用错误记录处理处理管道的惯用功能方法是什么?