正则表达式$0->$N的问题

j9988 2006-12-22 09:43:52
function f()
{
s="abcdefghijklmn";
re=/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)/gi;
//每个字符串之间插入逗号.
s=s.replace(re,"$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14");
alert(s);
}
//但因为有$10,$11,$12,$13,$14,
//若要在每个字符串之间插入0 或1 or 2 or 3 or 4 怎么写?
//困为经常有这种需求replace(rgExp,"$1(插入0)$10")
...全文
1312 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
btbtd 2006-12-22
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>shawl.qiu template</title>
<script type="text/javascript">
//<![CDATA[
function f() {
s="abcdefghijklmn";
re=/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)/gi;
//每个字符串之间插入逗号.
s=s.replace(re,function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14){
return $1+','+$2+','+$3+','+$4+','+$5+','+$6+','+$7+','+$8+','+$9+','+$10+
','+$11+','+$12+','+$13+','+$14
});
alert(s);
}
f();
//]]>
</script>
</head>
<body>

</body>
</html>
muxrwc 2006-12-22
  • 打赏
  • 举报
回复
function c() {
var p = /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/;
var s = "abcdefghij";
var j = Array.prototype.slice.call(s.match(p), 1).join("0");
alert(j);
}
c();
meizz老师。。昨天那个已经写完啦。。但是颜色控制那个,不懂。。。
懒得去死 2006-12-22
  • 打赏
  • 举报
回复
循环0-9
hbhbhbhbhb1021 2006-12-22
  • 打赏
  • 举报
回复
定义这么多的组的话就和正则的初衷分离了,假如一个字符串,每个字母都定义一个组那还匹配什么啊,直接用索引拿值就可以了。一般到$9差不多够用了
如果实在要用$10,感觉不如用个计数器
<script language=javascript>
s="abcdefghijklmn";
re=/[a-z]/gi;
var i=1
s=s.replace(re,function(a,b){if((i++)==10)alert(a)});
</script>
DeRoshia 2006-12-22
  • 打赏
  • 举报
回复
提个建议,可否将字符串截取每十位一替换,注意第二个十位起每个起始位置前加个“,”
j9988 2006-12-22
  • 打赏
  • 举报
回复
RegEXp.$10是不行.

但replace是可以的啊.
CutBug 2006-12-22
  • 打赏
  • 举报
回复
对头
$0-$9
j9988 2006-12-22
  • 打赏
  • 举报
回复
但replace可以:
s="abcdefghijklmn";
re=/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)/gi;
s=s.replace(re,"$10,$14");
alert(s);
//结果是:j,n
ishion 2006-12-22
  • 打赏
  • 举报
回复
只有 $0-$9
meizz 2006-12-22
  • 打赏
  • 举报
回复
在JS里的正则表达式里只有 $0-$9 其它的结果无法调用。
j9988 2006-12-22
  • 打赏
  • 举报
回复
谢谢meizz(梅花雪),我学正则,很多是看你的回贴学的.
但确实有这种需求怎么办?
replace(rgExp,"$1(插入0)$10") 怎么让$1+0跟$10区分开来?
meizz 2006-12-22
  • 打赏
  • 举报
回复
function f()
{
var s="abcdefghijklmn";
s=s.replace(/(.)/gi,",$1");
if(s.length>0) s=s.substr(1);
alert(s);
}

不要陷到里面去了,解决问题的办法有很多种。

87,907

社区成员

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

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