var str1=new RegExp("e");
document.write(str1.exec("hello"));
以上代码输出结果为 e
JavaScript高级程序设计上面的原话:
RegExp 对象的主要方法是 exec(),该方法是专门为捕获组而设计的。
exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回 null。
返回的是个数组,但是document.write打印时只打印了第一个元素。打印的是隐性toString()后的数据
如果匹配成功,exec() 方法返回一个数组,并更新正则表达式对象的属性。返回的数组将完全匹配成功的文本作为第一项,将正则括号里匹配成功的作为数组填充到后面。
如果匹配失败,exec() 方法返回 null。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
var str1=new RegExp("e");
str1.exec("hello")
["e", index: 1, input: "hello", groups: undefined]
var str1=new RegExp("l");
str1.exec("hello")
["l", index: 2, input: "hello", groups: undefined]
exec() 方法在控制台中输出的应该是一个伪数组,且数组的第一位是 ‘e’ 。而题目中使用的是 document.write() 方法,经过测试发现,页面上显示的是 ‘e’ 而不是伪数组
标签:exec,str1,write,数组,new,RegExp,hello From: https://www.cnblogs.com/longmo666/p/17817463.html