Javascript заменить все?
Я работаю над циклом для замены языковых тегов {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);
но это не работает здесь и останавливает весь мой сценарий.
Есть ли способ решить это легко?
РЕДАКТИРОВАТЬ
спасибо Феликсу Клингу! ссылка, которую он предоставил, заставила его работать: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 ответ
Решение
Если это не сработает, приведите пример для вывода переменной
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;
}