javascript:拆分字符串并替换值

javascript:拆分字符串并替换值,javascript,jquery,json,replace,mootools,Javascript,Jquery,Json,Replace,Mootools,我被困住了,宿醉很厉害。原谅我,我昨天过生日了。我如何分割一个字符串并用一个简单、愚蠢的javascript函数KISS替换所需的值 例如: var myvar = "John Doe needs %specialcharDD2% cookies a %specialcharXYV% !" // String ... var result = "John Doe needs 50 cookies a day !" // result 欢迎任何帮助!: 不知道为什么要拆分字符串,但替换可以

我被困住了,宿醉很厉害。原谅我,我昨天过生日了。我如何分割一个字符串并用一个简单、愚蠢的javascript函数KISS替换所需的值

例如:

var myvar = "John Doe needs %specialcharDD2% cookies a %specialcharXYV% !" // String 

...

var result = "John Doe needs 50 cookies a day !" // result

欢迎任何帮助!:

不知道为什么要拆分字符串,但替换可以这样简单地完成:

myvar=myvar。替换%specialchar1%,总计 myvar=myvar。替换%specialchar2%,期间;

或者

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]);

您可以使用下面的代码循环字符串中的匹配项-

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]);
}

根据搜索的内容,您可能必须更改正则表达式。然后,您可以使用所需的功能替换“警报”代码。

MooTools具有替换字符串扩展名

"Hello {myvariable}".substitute({myvariable: "world"});

非常感谢。我不能这样简单地替换它对不起我的错误帖子,因为我不知道%xyz%中的值-我如何检测它们?但我仍然不理解你的问题,你不知道total和period的值,或者你不知道%之间是什么?我重新编辑了上面的第一篇帖子。我不知道%specialvarID的id,需要一个函数来检测它们并接收%%内的值。
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]);
}
"Hello {myvariable}".substitute({myvariable: "world"});