`
starbhhc
  • 浏览: 654084 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript exec()方法使用

阅读更多
如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹
如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。除了数组元素和 length 属性之外,exec() 方法还返回三个属性:

  1、index 属性声明的是匹配文本的第一个字符的位置。

  2、input 属性则存放的是被检索的字符串 string。

  3、lastIndex属性是指匹配的字符串的最后一个字符的下一个字符的位置。

我们可以看得出,在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。

但是,当 RegExpObject 是一个全局正则表达式时,exec() 的行为就稍微复杂一些。当检测到第一个匹配的文本是暂时停止执行,然后把lastIndex属性值设置成下一次开始执行的位置,然后再次调用exec()方法,才可以从已经设置好的位置处继续执行。也就是说,可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。

无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。

注:如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。

实例:

<script type="text/javascript">   
  
var str = "Visit W3School, W3School is a place to study web technology.";    
var patt = new RegExp("W3School","g");   
var result;   
  
while ((result = patt.exec(str)) != null) {   
document.write(result);   
document.write("<br />");   
document.write(patt.lastIndex);   
document.write("<br />");   
}   
</script>   
  

输出结果:

W3School   
14   
W3School   
24  

这里共调用了3次exec方法。

<script language="javascript">   
<!--   
var mystring="aaa 111 bbb 222 ccc 111 222ddd";   
var regex=/111/g;   
var array=regex.exec(mystring);   
if(array)   
{   
  var str="找到了匹配字串"+"\n返回数组的值为:"+array+"\n数组元素个数:"+array.length+"\n被搜索的字符串为:"+array.input+"\n匹配字串的开始位置为:"+array.index+"\n匹配字串后面的第一个字符的位置为:"+regex.lastIndex;   
  alert(str);    
}   
//-->`   
</script>   
  

而这里因为没有循环控制语句,所以只调用了一次,返回结果也就为:

找到了匹配字串
返回数组的值为:111
数组元素个数:1
被搜索的字符串为:aaa 111 bbb 222 ccc 111 222ddd
匹配字串的开始位置为:4
匹配字串后面的第一个字符的位置为:7

分享到:
评论

相关推荐

    JavaScript中exec函数用法实例分析.docx

    本文将详细介绍 exec 函数的用法、定义和使用方法。 一、exec 函数的定义 exec 函数是 JavaScript 中的一种方法,用于在字符串中执行查找。它的基本语法为:rgExp.exec(str),其中 rgExp 是一个正则表达式对象,...

    深化剖析javascript中的exec与match方法_.docx

    深化剖析javascript中的exec与match方法_.docx

    JavaScript中exec函数用法实例分析

    本文实例讲述了JavaScript中exec函数用法。分享给大家供大家参考。具体如下: javaScript 中的 exec 函数,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。 rgExp.exec&#40;str&#41; 参数: ...

    在JavaScript的正则表达式中使用exec&#40;&#41;方法

    本文将详细讲解JavaScript中正则表达式exec方法的使用方法和相关知识点。 首先,需要了解exec方法的基本作用:exec方法属于正则表达式的实例方法,其主要作用是对字符串进行搜索,寻找与正则表达式相匹配的文本。当...

    ssh-exec, 使用 node.js 在ssh上执行脚本.zip

    ssh-exec, 使用 node.js 在ssh上执行脚本 ssh在ssh上执行脚本,使用 node.js 和管道,并从可以通过npm提供。npm install ssh-exec它是用普通的Javascript编写的,使用了 ssh2作为所有重。用法var ex

    深入剖析javascript中的exec与match方法

    exec方法的特点是它可以重复使用同一个正则表达式对象去匹配一个字符串中的多次出现的模式。它会返回一个数组,如果匹配成功,数组的第一个元素是匹配到的字符串,如果正则表达式有分组,则后续元素会依次是每个分组...

    前端开源库-exec

    这就是`exec`函数的作用,它允许我们在JavaScript中安全地调用具有`exec`功能的子进程。`exec`是Node.js中的一个核心模块`child_process`的一部分,用于执行命令行命令并获取其输出。 `child_process.exec`方法接收...

    JavaScript应用实例-exec的实践.js

    JavaScript应用实例-exec的实践.js

    java javascript 调用命令行 cmd

    `Runtime.getRuntime().exec(command)` 是最基础的方法,用于执行指定的系统命令。`command`参数是一个字符串,表示要执行的命令。例如,如果你想要运行`dir`命令,可以这样写: ```java String command = "cmd /...

    BSF(java中使用javascript)

    #### 三、BSF的基本使用方法 使用BSF涉及到几个关键步骤: 1. **导入必要的类库**:在使用BSF之前,需要先导入一些基本的类库,包括`org.apache.soap.util.ioutils`(用于处理JavaScript字符串),`org.apache.bsf...

    JavaScript正则表达式exec/g实现多次循环用法示例

    标题和描述中提到了JavaScript正则表达式中exec方法和全局修饰符g的用法,并通过实例演示了如何使用它们来实现对字符串的多次循环匹配。在JavaScript中,正则表达式用于进行模式匹配和文本处理,而exec方法和全局...

    Javascript中使用exec进行正则表达式全局匹配时的注意事项

    在使用JavaScript进行正则表达式匹配时,`exec` 函数是一个非常重要的工具,它提供了强大的文本匹配能力。正则表达式对象配合`exec` 方法在全局搜索(global search)模式下,即使用了`g`修饰符时,表现出来的行为与...

    javascript中的正则表达式使用指南.docx

    本指南将详细介绍如何在JavaScript中使用正则表达式,包括创建正则表达式的方法、常用的正则表达式方法以及一些实用的示例。 #### 二、创建正则表达式 在JavaScript中,可以通过两种方式创建正则表达式: 1. **使用...

    常用javascript案例大全

    在 JavaScript 中,实现字符串长度截取可以使用以下代码: ```javascript function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ""; for (var i = 0; i ; i++) { ...

    Node.js-native-exec:提供访问POSIXexec*功能的模块

    4. **错误处理**:`native-exec`提供了一种直接处理错误的方法,可以捕获并处理来自系统调用的错误代码,这对于调试和异常处理非常有用。 5. **跨平台兼容性**:虽然POSIX接口主要针对Unix-like系统,如Linux和...

    JavaScript核心对象参考手册

    2. **对象创建与原型Prototype**: JavaScript使用`new`关键字创建对象实例,原型链允许对象间共享属性和方法,`__proto__`或`prototype`属性是理解这一机制的关键。 3. **函数对象Function**: 在JavaScript中,函数...

    pcre_exec.rar_pcre_exec

    本文将详细探讨PCRE库中的核心函数`pcre_exec`,以及在JavaScript的正则执行上下文中的具体应用——`jsRegExpExecute`源码。 PCRE库是Perl语言风格的正则表达式实现,它提供了高效且功能丰富的API供开发者使用。`...

Global site tag (gtag.js) - Google Analytics