刚学到正则这块,大家帮我看下这段js代码

hexinping123 2011-11-30 09:14:07
<script type="text/javascript">
var str="a13c25d48";
var re=/(\d)(\d)/gi;
var strl=str.replace(re,"$2$1");
alert(str+"已经被替换成"+strl)
</script>

下面是显示的结果

弹出警告框,里面的内容是:a13c25d48已经被替换成a31c52d48


我的问题:1.$2$1 能帮我具体解释下吗
2. 对于正则对象的replace方法好像还是没有理解, 我的理解是:re为132548
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 hexinping123 的回复:]
<script type="text/javascript">
var str="a13c25d48";
var re=/(\d)(\d)/gi;
var strl=str.replace(re,"$2$1");
alert(str+"已经被替换成"+strl)
</script>

我的问题:1.$2$1 能帮我具体解释下吗
2. 对于正则对象的replace方法好像还是没有理解, 我的理解是:re为132548
[/Quote]

1. $2 $1 分别表示捕获组2 和捕获组1的值
2. re是临时变量 在匹配str时 分别会匹配 13 25 和 48

给你一个在线测试JS正则的工具:
http://www.renrousousuo.com/tools/regex_debug.html
默默不得鱼 2011-11-30
  • 打赏
  • 举报
回复
搞个正则工具学正则比较好
p2227 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hexinping123 的回复:]

引用 1 楼 p2227 的回复:

查找两个连续出现的数字,并交换它们的顺序,$1是第一个()里面的内容,$2同理


嗯,明白了……好像我的结果打错了,

下面是显示的结果

弹出警告框,里面的内容是:a13c25d48已经被替换成a31c52d84
[/Quote]嗯,经测试是这样
hexinping123 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 p2227 的回复:]

查找两个连续出现的数字,并交换它们的顺序,$1是第一个()里面的内容,$2同理
[/Quote]

嗯,明白了……好像我的结果打错了,

下面是显示的结果

弹出警告框,里面的内容是:a13c25d48已经被替换成a31c52d84
p2227 2011-11-30
  • 打赏
  • 举报
回复
还是w3school比较适合初学者

http://www.w3school.com.cn/js/jsref_replace.asp
p2227 2011-11-30
  • 打赏
  • 举报
回复
查找两个连续出现的数字,并交换它们的顺序,$1是第一个()里面的内容,$2同理

87,910

社区成员

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

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