用循环替换简单的Javascript
Simple Javascript replace with a loop
我试图用数组索引值替换字符串中的所有出现,如下所示。
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]);
}
无论我做什么,我似乎都无法让它发挥作用。删除"/g"只适用于一个匹配项,但不能全部删除。我知道这是基本的,但对我来说,我无法让它发挥作用。
点击此处
代码:
var rx = /{([0-9]+)}/g;
str=str.replace(rx,function($0,$1){return params[$1];});
replace方法在字符串中循环(因为正则表达式中有/g),并查找{n}的所有实例,其中n是一个数字$1捕获数字,函数将{n}替换为params[n]。
尝试使用这个:
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);
http://jsfiddle.net/LByBT/
如果您想跳过正则表达式解决方案,该怎么办。。
function replaceAllOccurrences(inputString, oldStr, newStr)
{
while (inputString.indexOf(oldStr) >= 0)
{
inputString = inputString.replace(oldStr, newStr);
}
return inputString;
}
相关文章:
- Javascript简单的timeago脚本设置为跨类或标签id
- JavaScript 简单身份验证
- Javascript简单动画循环
- Javascript - 简单的登录重定向
- Javascript - 简单的划分会导致错误
- JavaScript 简单的单位转换与单位选择
- 输入密码后的JavaScript简单重定向
- Javascript简单计数与延迟
- Javascript简单计时器不能正常工作
- Javascript简单代码错误
- Javascript 简单添加类删除类
- 日期列表使用javascript简单
- Javascript 简单检查网络表单,以确保它包含数字和字母(而不是我的代码)
- 从数组进行JavaScript简单登录
- javascript简单数学问题
- 返回未定义的javascript简单测试
- Javascript简单继承方法
- Javascript-简单-从URL获取Ip
- jquery和本地javascript简单DOM选择器
- Javascript简单的面向对象