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

Rad*_*Hex 0 javascript

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

eg. "move 10 10 line 50 50"
Run Code Online (Sandbox Code Playgroud)

move和line命令

数字x,y坐标

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

eg. "move %mouseX%+1 %mouseY%+1"
Run Code Online (Sandbox Code Playgroud)

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

我该如何解析和替换这些?

CMS*_*CMS 6

对于这种类型的字符串操作,作为一个起点,您可以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"
Run Code Online (Sandbox Code Playgroud)

这只是一个关于你能用这种技术做的事情的简单例子.这个小功能将使您能够一步完成多个%token%替换.

推荐文章: