比如 var s = "123aaa345bbb999ddd'现在有个数字var a = [111,222,333]s中的数字不一定是123,345和999,我现在希望把中间出现的第一个数字替换成111,第二个222,第三个333,要怎么弄啊
其中123,345和999我可以用match提出来,但是就是不知道怎么去替换。
实际情况字符串s中的数量 不一定是三个,也不一定和a中的替换数字数量吻合,所以不能写死。
也不能这样写:
var r = /[^\d]/g;
var old = s.match(r);
for(var i=0; i<a.length; i++)
{
s.replace(old[i], a[i]);
}因为这样有个bug,加入字符串是"1a2b3c",而需要替换成(2,5,6),那么
第一轮循环之后字符串变成了"2a2b3c"
第二轮本来该替换a和b中间那个2,但是结果却会把第一个2替换成5。
其中123,345和999我可以用match提出来,但是就是不知道怎么去替换。
实际情况字符串s中的数量 不一定是三个,也不一定和a中的替换数字数量吻合,所以不能写死。
也不能这样写:
var r = /[^\d]/g;
var old = s.match(r);
for(var i=0; i<a.length; i++)
{
s.replace(old[i], a[i]);
}因为这样有个bug,加入字符串是"1a2b3c",而需要替换成(2,5,6),那么
第一轮循环之后字符串变成了"2a2b3c"
第二轮本来该替换a和b中间那个2,但是结果却会把第一个2替换成5。
解决方案 »
- js脚本获得dataset,实现地图动态标注?谁帮忙?
- HTML元素有事件处理函数却不执行?
- 小弟改造的一个五级联动下拉框,出了点问题,请教!
- 当点击"修改密码"文字时,用js如何实现 弹出一个小的对话框提示"请输入原密码"输入完原密码点击确定后再弹出对话框提示"请输入修改后密码"
- 求<javaScript宝典>(第四版)光盘(100分)
- 正则表达式问题--如何替换掉内容中的IMG变成有LINK的IMG呢?
- 目录?要做个浏览按钮,点一下可选择目录!请问如何实现?
- 关于选择下拉框中选项显示其他内容的问题???
- 如何实现树形结构中各节点(用核选框表示)彼此关联?
- 一个list中有普通类型数据,内部还有一个list,如何遍历?
- 对象深拷贝后删除属性问题??
- 怎样让某一文本框的内容根据另一文本框的内容变化而变化
123aaa345bbb999ddd666bbb
那么前面3个变成了111aaa222bbb333,那么666继续变成111还是不替换??
var a = [111,222,333];
var i = 0;
s = s.replace(/\d+/g,function(){
if (a[i]) return a[i++];
});
alert(s);
var a = [111,222,333];
var i = 0;
var len = a.length;
s = s.replace(/\d+/g,function(){
if (a[i%len]) {return a[i++%len]};
});
alert(s);