我正在提供带命令的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坐标
我该如何解析和替换这些?
对于这种类型的字符串操作,作为一个起点,您可以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%替换.
推荐文章:
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |