一个感觉有点儿莫名其妙的Javascript运行结果

gosenz 2011-02-20 10:44:40
var reg = /(m|n)/;
var str = "m";
alert(reg.exec(str));

这个执行执行结果怎么会是m,m
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crazywa 2011-02-21
  • 打赏
  • 举报
回复

var reg = /(?:m|n)/;
var str = "m";
alert(reg.exec(str));

非捕获匹配。。。再看看。。
汉尼拔 2011-02-21
  • 打赏
  • 举报
回复
reg.exec(str)或者是str.match(reg)返回的是一个数组(不管reg是否是全局搜索)

具体的那就你自己随便拿本书看看就知道了
Mr-Jee 2011-02-21
  • 打赏
  • 举报
回复
第一个是匹配的字符串
第二个是分组的捕获值
varlj 2011-02-20
  • 打赏
  • 举报
回复
加了括号,表示有一个捕获组,然后返回的结果里面,第一个是所有的匹配内容,即使没有捕获组
试试正面的例子
var reg = /ab(cd)/;
var result = reg.exec('abcdefg');
for(var i=0;i<result.length;i++)
alert(result[i]);
挨踢直男 2011-02-20
  • 打赏
  • 举报
回复
你拿掉括号
var reg = /m|n/;

87,992

社区成员

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

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