关于正则表达式的match的$1-$9

rotApple 2007-11-27 06:17:49
如: 如果匹配一句
var str = "abc";
str.match(/^a(.)c$/)

那$1就是b

那如果我匹配出来的是一个数组
var str = "abcabc";
str.match(/a(.)c/);

那怎么循环取$1 ??? 谢谢!
...全文
347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2007-11-28
  • 打赏
  • 举报
回复
看来大家是误会我的意思了.

我是说, 如:

<img src="dd.gif"/><img src="dd.gif"/><img src="dd.gif"/>

最后匹配得到的结果为:

<img src="dd.gif"/>,<img src="dd.gif"/>,<img src="dd.gif"/>
三个元素

不过我在写正则的时候已经把XX.gif打了括号,所以我想用$1直接循环取出来所有的XX.gif
因为match后的数组是像上面写的,但我只需要$1括号的内容(循环的)

一楼的$1不行的,那个$1会一直是最后一将的括号内的内容,比如刚才我写的是abcaec,那么你写的那个$1两个都是e.
rotApple 2007-11-28
  • 打赏
  • 举报
回复
1楼的谢谢,发帖之前我按你写的那种已经写出来了,只是笨了点写成了RegExp.$1,改了下,已经可以了,写的arguments[1],OK,结帖.
rotApple 2007-11-28
  • 打赏
  • 举报
回复
anybody here?
lkh42002 2007-11-27
  • 打赏
  • 举报
回复
var str = "abcadcaecafc";
var arr = str.match(/a(.)c/g);
for(var i=0; i<arr.length; i++)
{
document.write(arr[i]+"<br>");
}
-----------------
output:
abc
adc
aec
afc
symbol441 2007-11-27
  • 打赏
  • 举报
回复
如: 如果匹配一句
var str = "abc";
str.match(/^a(.)c$/)

那$1就是b

那如果我匹配出来的是一个数组
var str = "abcabc";
str.match(/a(.)c/);

那怎么循环取$1 ??? 谢谢!
------------------
LZ加了起始限定符,本身就不能匹配到一个数组,$1他只能匹配到bcab

如果在取出为数组时,你可以split(',')把其分离到数组当中进行处理。
lip009 2007-11-27
  • 打赏
  • 举报
回复

var str="abcabc";
var reg=/a(.)c/g;
var array=new Array();
var index=0;
str.replace(reg,function($0,$1){
array[index]=$1;
index++;
});
alert(array);

87,923

社区成员

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

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