var str='@test1@,@test2@,@test3@,@test4@' 把@@中间的数据依次替换为1,2,3,4 怎样写?

巨应打字员 2009-11-28 04:21:36
var str='@test1@,@test2@,@test3@,@test4@'
把@@中间的数据依次替换为1,2,3,4
怎样写?
...全文
104 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
king_jzg 2009-11-28
  • 打赏
  • 举报
回复
var arr=["one","two","third","four","five"];
var val="@test1@,@test2@,@test3@,@test4@";
val.replace(/@test(\d+)@/gi,function(sMatch){
return arr[sMatch.match(/\d+/)];
})
king_jzg 2009-11-28
  • 打赏
  • 举报
回复
<script>
function f()
{
var arr=["one","two","third","four","five"];
var reg = /@test(\d+)@/gi
var val = document.getElementById("text").value;
alert(reg.test(val));
alert(val.replace(reg,function(sMatch){
alert(sMatch.search(/\d+/));
return arr[sMatch.match(/\d+/)];
}));
}
</script>
<body>
<input type="text" id="text"/>
<input type="button" onclick="f();" value="Test"/>
</body>
这个是你要的吗
巨应打字员 2009-11-28
  • 打赏
  • 举报
回复
行了,谢谢楼上 就是这样 一开始 我把i++ 专门写为一行,貌似就不行
草根醉秋意 2009-11-28
  • 打赏
  • 举报
回复


var str='@test1@,@test2@,@test3@,@test4@';
var arr=["1ss","2dd","3ff","4gg"]
var pattern = /@.*?@/g;
var i = 0;
str = str.replace(pattern,function(){
return arr[i++];
});
alert(str);
巨应打字员 2009-11-28
  • 打赏
  • 举报
回复
比如有个 数组 arr=["1ss","2dd","3ff","4gg"];
我想把第一匹配出来的替换为 arr【1】
第二个匹配出来的 arr【2】
依次这样
草根醉秋意 2009-11-28
  • 打赏
  • 举报
回复


var str='@test1@,@test2@,@test3@,@test4@';
var arr = [1,2,3,4];
var pattern = /@.*?@/g;
var i = 0;
str = str.replace(pattern,function(){
return arr[i++];
});
alert(str);
草根醉秋意 2009-11-28
  • 打赏
  • 举报
回复

var str='@test1@,@test2@,@test3@,@test4@';

var pattern = /@.*?@/g;
var i = 0;
str = str.replace(pattern,function(){
return "@" + (++i) + "@";
});
alert(str);
sohighthesky 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dhswg20077 的回复:]
其实我是想把 匹配出来的值,全部换成我一个事先定义好的数组中的值
[/Quote]
不太明白,什么叫事先定义好的数组中的值
巨应打字员 2009-11-28
  • 打赏
  • 举报
回复
其实我是想把 匹配出来的值,全部换成我一个事先定义好的数组中的值
巨应打字员 2009-11-28
  • 打赏
  • 举报
回复
我是想问,如何一句代码写成。
sohighthesky 2009-11-28
  • 打赏
  • 举报
回复
错了,忘记加g全局匹配了
str=str.replace(/@test(\d+)@/g,"$1");
sohighthesky 2009-11-28
  • 打赏
  • 举报
回复
str=str.replace(/@test(\d+)@/,"$1");

87,920

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧