我供給用命令Javascript函數字符串(SVG路徑命令):解析文本中的特殊字符串(例如「%var%」)?
eg. "move 10 10 line 50 50"
舉動和線是命令
號碼被X,Y座標
我想特殊字符串添加到這些命令,將指示功能,使用特定的變量
eg. "move %mouseX%+1 %mouseY%+1"
其中%mouseX%和%mouseY的%將鼠標X, y座標
我該如何解析並替換這些?
我供給用命令Javascript函數字符串(SVG路徑命令):解析文本中的特殊字符串(例如「%var%」)?
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"
那只是關於一個簡單的例子你可以用這種技術做的事情。這個小功能將使您能夠在一個步驟中完成多個%令牌%替換。
推薦文章:
var command = 'move %mouseX%+1 %mouseY%+1';
command = command.replace('%mouseX%', mouseX).replace('%mouseY%', mouseY);
如果mouseX和mouseY的是按住鼠標位置的變量。
使我很大的意義。 – RadiantHex 2010-01-21 04:18:14
很有幫助。如果您不想對特殊變量名稱進行硬編碼並認爲可以添加更多,CMS的答案非常適合。 – 2010-01-21 04:19:24
順便說一句,有一個問題,它只會取代第一次發生! – RadiantHex 2010-01-21 05:05:12
哇我真的很喜歡這個答案,謝謝! – RadiantHex 2010-01-21 04:19:04