正则--match和exec方法

本文介绍了JavaScript中字符串方法match及正则表达式方法exec的使用方式,包括局部匹配与全局匹配的区别,以及如何获取匹配结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、字符串方法–match的用法

1、stringObject.match(str):

用于检索字符串中指定的值,返回一个存放匹配结果的数组,若没有检索到,返回null

    var str = "hello world!";
    str.match('llo');//['llo']
    str.match("ksk");//"null"
2、stringObject.match(regexp):

将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本,若没有匹配到,则返回null。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。

(1)如果没有全局匹配标志,则返回如下:

1、索引:匹配到的第一个字符串
2、index属性:匹配到的字符串的位置
3、input属性:原字符串对象

    var str = "Code123Player34Code456 http://www.365mini.com";

    str.match(/\d{2}/);

这里写图片描述

(2)如果带有全局匹配的标志g,则返回如下:
  • 包含全部索引值的数组,该数组不再包含index和input属性
 var str = "Code123Player34Code456 http://www.365mini.com";

str.match(/\d{2}/g);

这里写图片描述

二、正则的方法regExp.exec(str)的用法

1、若没有匹配到,则返回null
2、如果 exec() 找到了匹配的文本,则返回一个结果数组。
  • 此数组的第 0 个元素是与整个正则表达式相匹配的文本
  • 第 1 个元素是与 RegExpObject 的第 1 个子表达式(也就是圆括号里的正则表达式)匹配的文本
  • 第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本,以此类推。
  • 除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string
  • 而且在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。

这里写图片描述

3、如果是设置了全局属性的RegExp对象调用exec()方法
  • 如果正则对象带有g全局属性,则可以多次调用exec方法,下一次检索的位置是从上一次匹配成功(也就是正则对象的lastIndex属性值所指示)的位置的下一个位置开始。
  • 当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值