var str1=new RegExp("e"); document.write(str1.exec("hello")); 以上代码输出结果为( )

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() 方法是一个正则表达式方法。

exec() 方法用于检索字符串中的正则表达式的匹配。

该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

本题的exec执行结果是一个数组,但是使用了document.write,所以显示在html中的内容是数组中的元素,即e

js还有一个test()方法,用于检测字符串是否匹配某个模式,返回值为boolean

因为document.write传入的是一个数组,所以会默认调用toString的方法,也就是str1.exec("hello").toString(),结果就是e


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17817463.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示