Javascript取代所有?

时间:2012-01-16 10:40:30

标签: javascript jquery replace

我正在开发一个循环,用实际的术语(名称)

替换语言标签{lang_vname}

language.js:

var lang = {
//common
   vname                   : "name",
   name                    : "lastname",
   adress                  : "adress",
   language                : "language",

替换脚本

function translate(output)  {
var term = output;
$.each(lang,function(i,l){
    var find = "{lang_"+i+"}";
    term = term.replace(find,l);
});
return term;}

如果有一种类型的表达式,我无法弄清楚如何替换输出。它只替换第一个标签,如果有第二个标签,则显示标签。 我找到了像replace(/find/g,l);这样的解决方案,但它不能在这里工作并停止我的整个脚本 有没有办法轻松解决这个问题?

编辑

感谢Felix Kling!他提供的链接使它起作用:D我的最终结果是

function translate(output)  {
    var term = output;
    $.each(lang,function(i,l){
        var find = "{lang_"+i+"}";
        var regex = new RegExp(find, "g");
        term = term.replace(regex, l);  
    });
    return term;
}

感谢您的快速帮助!

1 个答案:

答案 0 :(得分:1)

如果这对您不起作用,请提供变量输出的示例

function translate(output)  {
    var term = output;
    $.each(lang, function(i, l){
        var find = new RegExp("{lang_"+i+"}", "g");
        term = term.replace(find, l);
    });
    return term;

}