您现在的位置是:网站首页> 编程资料编程资料
Javascript中使用exec进行正则表达式全局匹配时的注意事项_正则表达式_
2023-05-25
324人已围观
简介 Javascript中使用exec进行正则表达式全局匹配时的注意事项_正则表达式_
本文就是介绍在使用 Javascript 中使用 exec 进行正则表达式全局匹配时的注意事项。
先看一下常见的用法:
接下来看一下全局模式下的诡异事件:
第二个语句并没有返回期望的结果,而是返回了 null ,这是因为:
在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
下面是正常的全局模式下的匹配方式:
从上面的代码我们可以看到,之所以出现第二段代码中的问题,影响因素是 lastIndex ,所以我们可以通过将 lastIndex 手动置 0 的方式来解决这个问题。
总结:
在全局模式下,如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。
先看一下常见的用法:
复制代码 代码如下:
接下来看一下全局模式下的诡异事件:
复制代码 代码如下:
第二个语句并没有返回期望的结果,而是返回了 null ,这是因为:
在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
下面是正常的全局模式下的匹配方式:
复制代码 代码如下:
从上面的代码我们可以看到,之所以出现第二段代码中的问题,影响因素是 lastIndex ,所以我们可以通过将 lastIndex 手动置 0 的方式来解决这个问题。
复制代码 代码如下:
总结:
在全局模式下,如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。
您可能感兴趣的文章:
相关内容
- 正则表达式 匹配至少有一个非空白字符并且不超过指定长度_正则表达式_
- 正则表达式的高级技巧分享_正则表达式_
- js正则解析URL参数示例代码_正则表达式_
- ajax对注册名进行验证检测是否存在于数据库中_正则表达式_
- 正则表达式概述 什么是正则表达式 ._正则表达式_
- javascript正则表达式容易被忽略的小问题整理_正则表达式_
- PHP preg_match的匹配多国语言的技巧_正则表达式_
- 常用的JQuery数字类型验证正则表达式整理_正则表达式_
- JS、replace利用正则表达式替换SQL所有参数为指定格式的数据_正则表达式_
- 如何使用JavaScript和正则表达式进行数据验证_正则表达式_
