我正在提供带有命令的 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/