点上面关注免费学习前端知识!


RegExp对象定义了两个用于执行模式匹配操作的方法。它们的行为和String方法很类似。RegExp最主要的执行模式匹配的方法是exec(),它与String中match()方法相似,只是RegExp方法的参数是一个字符串,而String方法的参数是一个RegExp对象。exec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个 字符串中执行匹配检索。如果它没有找到任何匹配,它就返回null,但如果它找到了一个匹配,它将返回一个数组,就像match()方法为非全局检索返回的数组一样。这个数组的第一 个元素包含的是与正则表达式相匹配的字符串,余下的元素是与圆括号内的子表达式相匹配的子字符串。属性index包含了发生匹配的字符位置,属性input引用的是正在检索的字符串。

回忆一下,当match()的参数是一个全局正则表达式时,它返回由匹配结果组成的数组。相比之下,exec()总是返回一个匹配结果,并提供关于本次匹配的完整信息。当调用 exec()的正则表达式对象具有修饰符g时,它将把当前正则表达式对象的lastIndex属性设置 为紧挨着匹配子串的字符位置。当同一个正则表达式第二次调用exec()时,它将从 lastIndex属性所指示的字符处开始检索。如果exec()没有发现任何匹配结果,它会将 lastIndex重置为0(在任何时候都可以将lastIndex属性设置为0,每当在字符串中找最后一 个匹配项后,在使用这个RegExp对象开始新的字符串查找之前,都应当将lastIndex设置为 0)。这种特殊的行为使我们可以在用正则表达式匹配字符串的过程中反复调用exec()

match和exec的对比相关推荐

  1. js正则函数match、exec、test、search、replace、split使用集合

    match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对 ...

  2. match和exec

    1.基本用法 match:str.match(reg) exec:reg.exec(str) 2.比较 匹配不到返回null reg不是全局搜索,两者的返回结果是一样的数组.    ['匹配到的结果' ...

  3. ES中match和term差别对比

    match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找.一般模糊查找的时候,多用match,而精确查找时可以使用term. 举个例子说明一下: { &quo ...

  4. javascript中match方法和exec()方法详解与深度区别(非原创)

    match和exec的比较 1.match match方法属于String正则表达方法.  语法: str.match(regexp或者string) str:要进行匹配的字符串. regexp:一个 ...

  5. 深入javascript中的exec与match方法

    视频课堂https://edu.csdn.net/course/play/7621 经典面试题,如果知晓一下题目的答案,那就没有必要往下看了. var someText="web2.0 .n ...

  6. js exec方法详解

    今天查看jquery源码的时候突然被exec方法给弄懵了,特意翻了翻资料详细了解了下. 1.定义 exec() 方法用于检索字符串中的正则表达式的匹配. 使用方法:var match = RegExp ...

  7. javascript 正则方法 exec()

    exec()是RegExp对象的主要方法.exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组,或者在没有匹配项的情况下返回null. let reg = /apple ...

  8. 转:初探 jQuery 的 Sizzle 选择器

    这是一篇关于介绍jQuery Sizzle选择器的文章,由我和obility共同完成.在文中,我们试图用自己的语言配以适量的代码向读者展现出Sizzle在处理选择符时的流程原理,以及末了以少许文字给你 ...

  9. jQuery选择器引擎和Sizzle介绍

    jQuery选择器引擎和Sizzle介绍 首先介绍一下什么是Sizzle: Sizzle是一个纯javascript CSS选择器引擎.jquery1.3开始使用sizzle,Sizzle一反传统采取 ...

最新文章

  1. XGBoost4J-Spark基本原理
  2. ubuntu下配置bind9为局域网的DNS服务器
  3. GraphPad Prism 9.1 for Win / Mac 下载安装及使用教程
  4. Java工具类--雪花算法生成全局唯一ID
  5. 模拟键盘 键盘虚拟代码
  6. 【渗透过程】嘉缘网站 --测试
  7. 快速打造一个MINI自动发布系统
  8. 高一学生计算机知识现状分析,关于高中信息技术课教学现状的思考
  9. ubuntu内网环境安装zabbix agent
  10. 跟我一起考PMP---项目整合管理
  11. mac的python换字体_Mac OSX Yosemite系统字体修改
  12. Nopcommerce kendo UI Roxy Fileman控件的汉化
  13. 计算机组成原理——计算机的工作过程
  14. 冲刺中高考,AI辅助学习靠谱吗?
  15. 灰度共生矩阵(GLCM)计算速度快很多,用numpy写的
  16. 第075封“情书”:百撕不得其解Tearing Cloth<Entagma>Houdini 2018
  17. stm32专题二十一:LCD显示原理
  18. 【阅读笔记】《深度学习》第一章:引言
  19. 谷歌卫星影像存储方案
  20. 《凡人修真2》 架设

热门文章

  1. 构建安全驱动型网络,Fortinet荣誉2020 Gartner广域网边缘基础设施领导者的源力
  2. 太秀了!单片机内置 ADC 实现高分辨率采样?
  3. 对话阿里云李飞飞:云原生数据库的时代来了
  4. 蚂蚁金服上市诞生千个亿万富翁,财富自由,离你不远!
  5. Facebook 推远程办公政策,但要“调整”薪资,你觉得 OK 吗?
  6. 一文带你认清数据仓库“维度模型设计”与“分层架构” | 原力计划
  7. 乔纳森离开苹果;李彦宏被泼水;Windows 公开 Linux 内核源代码 | 开发者周刊
  8. 华米 OV 一加“征服”印度?!
  9. 崩溃!还未修复的 Bug,凌晨三点遭到黑客 DDoS 攻击 | 技术头条
  10. 缝衣间走出来的创始人,他的开源软件公司被 340 亿美元收购了