javascript:拆分字符串并替换值

时间:2011-07-13 12:24:49

标签: 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

欢迎任何帮助! :)

5 个答案:

答案 0 :(得分:5)

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

myvar = myvar.replace("%specialchar1%",total)
myvar = myvar.replace("%specialchar2%",period);

http://www.w3schools.com/jsref/jsref_replace.asp

答案 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)

MooTools有一个替代字符串扩展名

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

MooTools docs