用循环替换简单Javascript
我尝试用数组索引值替换字符串中的所有发生,如下所示用循环替换简单Javascript,javascript,regex,string,replace,Javascript,Regex,String,Replace,我尝试用数组索引值替换字符串中的所有发生,如下所示 var str = '<a href="{0}" title="{1}">{1}</a>'; var params= []; params.push('Url', 'TitleDisplay'); for (i in params) { var x = /'{' + i + '}'/g; str = str.replace(x, params[i]); } var-str=''; var参数=[];
var str = '<a href="{0}" title="{1}">{1}</a>';
var params= [];
params.push('Url', 'TitleDisplay');
for (i in params) {
var x = /'{' + i + '}'/g;
str = str.replace(x, params[i]);
}
var-str='';
var参数=[];
参数push('Url','TitleDisplay');
用于(参数中的i){
var x=/'{'+i+'}'/g;
str=str.replace(x,参数[i]);
}
无论我做什么,我似乎都无法使它发挥作用。删除“/g”只适用于一个匹配项,但不是所有匹配项。我知道这是基本的,但就我个人而言,我无法让它工作。尝试使用以下方法:
var x = new RegExp("\\{" + i + "\\}", "g");
与此相反:
var x = /'{' + i + '}'/g;
如果需要动态,可以构建regexp对象
var str = '<a href="{0}" title="{1}">{1}</a>';
var params= [];
params.push('Url', 'TitleDisplay');
for (var i = 0; i < params.length; i++) {
var x = new RegExp('(\\{'+i+'\\})', 'g');
str = str.replace(x, params[i]);
}
alert(str);
var-str='';
var参数=[];
参数push('Url','TitleDisplay');
对于(变量i=0;i
代码:
replace方法循环遍历字符串(因为regex中的/g),并查找{n}的所有实例,其中n是一个数字$1捕获数字,函数将{n}替换为params[n]。如果您想跳过正则表达式解决方案,该方法如何
function replaceAllOccurrences(inputString, oldStr, newStr)
{
while (inputString.indexOf(oldStr) >= 0)
{
inputString = inputString.replace(oldStr, newStr);
}
return inputString;
}
不要将
用于。。。在
for arraysCan你能分享你的代码和你使用的输入字符串吗?对我来说,我成功地在各种不同的领域使用了它projects@emotality这是因为您可能正在用相同的字符串替换前面或结尾的字符串
function replaceAllOccurrences(inputString, oldStr, newStr)
{
while (inputString.indexOf(oldStr) >= 0)
{
inputString = inputString.replace(oldStr, newStr);
}
return inputString;
}