JavaScript exec() 方法
  1. JavaScript RegExp 对象

    • 定义和用法
      • exec() 方法用于检索字符串中的正则表达式的匹配。
        • 语法:RegExpObject.exec(string)
        • 参数    描述
          • string    必需。要检索的字符串。
          • 返回值
            • 返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
    • 说明
      • exec() 方法的功能非常强大,它是一个通用的方法,而且使用起来也比 test() 方法以及支持正则表达式的 String 对象的方法更为复杂。
    • 如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。我们可以看得出,在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
    • 但是,当 RegExpObject 是一个全局正则表达式时,exec() 的行为就稍微复杂一些。它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
    • 提示和注释
    • 重要事项:如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。
    • 提示:请注意,无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。
    • 实例
      • 在本例中,我们将全局检索字符串中的 W3School:
<script type="text/javascript">
var str = "Visit W3School";
var patt = new RegExp("W3School","g");
var result;
while ((result = patt.exec(str)) != null)  {
document.write(result);
document.write("<br />");
document.write(patt.lastIndex);
}
</script>
输出:
W3School
14

转载于:https://www.cnblogs.com/webbeyond/p/5907413.html

js 中的 exec( )方法相关推荐

  1. JS中通过call方法实现继承

    JS中通过call方法实现继承 原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1 ...

  2. JS中的Replace方法

    最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处.代码如下 ...

  3. java script eval_「eval」js中的eval方法详解(一)–eval方法的初级应用 - seo实验室...

    eval 在我看来,js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照javaScript语法进行解析并执行. 语法: eval(s); eval()方法中的参数s有多种情况.参数 ...

  4. JS中创建对象的方法

    JS中创建对象的方法 最近手头一个项目刚完成,下一个显目还在准备中,趁这个空档期,拿起尘封多年的JS书, 重温一遍JS面向对象程序设计,然后就得出下文,算是一个总结吧. 也许,你会说 "创建 ...

  5. jquery中的map()方法与js中的map()方法

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  6. js中的字符串方法与数组方法总结

    js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法

  7. 请尽可能说出js中数组的方法,最少3个,越多越好

    我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...

  8. slice在php里面什么意思,js中slice()使用方法

    本文主要和大家分享js中slice()使用方法,slice()通过索引位置获取新的数组,该方法不会修改原数组,只是返回一个新的子数组. 用法:arrayObj.slice(start,end)arra ...

  9. js中的slice方法(开始索引,结束索引-不包含该索引元素)-截取和splice方法-删除(开始索引,删除个数)和插入-(开始索引,删除个数,插入内容)

    js中的slice方法(开始索引,结束索引-不包含该索引元素)-截取和splice方法-删除(开始索引,删除个数)和插入-(开始索引,删除个数,插入内容) 1.slice(start,end)-截取 ...

  10. js中数组map方法的使用和实现

    js中数组map方法的使用和实现 MDN中定义 map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值. 语法 var new_array = arr.map(fun ...

最新文章

  1. 004-什么是软件测试?软件测试的目的与原则
  2. robot ride edit 页面不显示_【框架】robot-framework预研
  3. Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目
  4. 【EOJ Monthly 2019.02 - B】解题(思维,抽屉原理,暴力,模运算,优化,tricks)
  5. linux-文件的时间-四种时间类型
  6. PHP学习8——图像处理
  7. 随想录(再谈核心技术)
  8. 理解 Android 的 ONE_SHOT_MAKEFILE
  9. 理解String不可变
  10. UNIQLO 11月销售额逆市上涨7.9%
  11. 麦克耳机软件测试知识,怎么测试麦克风(测试pc电脑麦克风 以及耳机扬声器是否正常)...
  12. Head First Java.第二版.中文完整高清版
  13. 公共数据 | CnOpenData中国90座城市建筑物屋顶矢量数据集
  14. Windows 7专业版安装VS2005与WinCE6.0开发环境
  15. 大四学年软件公司实习感悟
  16. 学简单python好学吗_python好学吗语法简单吗举个例子
  17. Linux 串口终端kermit安装和使用
  18. Word设置每章不同的页眉
  19. java BASE64Encoder详细介绍及简单实例
  20. 视频网站主机服务器,视频网站主机服务器

热门文章

  1. 拼多多活动主图尺寸多少?企立方来告诉你!
  2. c语言实现灰度图转换
  3. win10安装MySQL常见问题_win10 安装MySQL过程和遇到的坑
  4. 快捷下载中国原创音乐基地音乐(包括金豆和无法下载音乐)
  5. centos9 intel集显直通方法
  6. 华为语音解锁设置_华为手机语音转文字怎么设置,如何完成音频在线转换
  7. 5V 3A手机充电器方案
  8. MIR 2022 反者道之动, 基于因果推断的可解释对抗防御
  9. Android之Fragment应用——一个简易版的新闻应用
  10. 一本通1646GT 考试