我被困住了,宿醉非常糟糕。原谅我,我昨天过生日。我怎样才能拆分字符串并用简单的愚蠢的javascript函数(KISS)替换所需的值?
示例:
var myvar = "John Doe needs %specialcharDD2% cookies a %specialcharXYV% !" // String
...
var result = "John Doe needs 50 cookies a day !" // result
欢迎任何帮助! :)
答案 0 :(得分:5)
不知道你为什么要拆分字符串,但是替换可以像这样简单地完成:
myvar = myvar.replace("%specialchar1%",total)
myvar = myvar.replace("%specialchar2%",period);
答案 1 :(得分:3)
var txt = "John Doe needs %specialchar1% cookies a %specialchar2% !";
var replacements = [50, "day"];
txt.replace(/%specialchar\d+%/mg, function(findings) { return replacements[findings.match(/\d+/)[0] - 1] })
答案 2 :(得分:2)
可替换地;
result = repl(myvar, total, period);
function repl(input) {
for (var i = 1; i < arguments.length; i++)
input = input.replace("%specialchar" + i + "%", arguments[i]);
return input
}
//or for global; input = input.replace(new RegExp("%specialchar" + i + "%", "ig"), arguments[i]);
更新任何结尾的令牌;
function repl(input) {
var i = 1, args = arguments;
return myvar.replace(/(%specialchar\w+%)/g, function() {
return args[i++];
});
}
答案 3 :(得分:2)
你可以使用下面的代码循环遍历字符串中的匹配 -
var text = 'John Doe needs %specialchar1% cookies a %specialchar2% !';
var matches = text.match(/%[a-zA-Z0-9]*%/g);
for (i=0; i<matches.length; i++) {
alert(matches[i]);
}
您可能需要根据要搜索的内容更改正则表达式。然后,您可以将“警报”代码替换为所需的功能。
答案 4 :(得分:1)