js正则表达式之exec方法讲解

yizhihongxing

下面是关于“js正则表达式之exec方法讲解”的完整攻略。

exec方法介绍

正则表达式是一个非常重要的知识点,使用正则表达式可以进行文本匹配和替换,exec() 是Regexp对象的一个方法,用于在字符串中执行正则表达式的搜索,并返回包含结果的数组。如果没有找到匹配,它将返回 null。

该方法的语法如下所示:

regexp.exec(str)

其中 regexp 为需要匹配的正则表达式, str 为需要进行匹配的字符串。

这个方法会在字符串中寻找第一个匹配项。如果找到,它将返回匹配项组成的数组,否则返回 null。数组会包含匹配结果和一些其他属性。

exec方法返回值

当exec方法进行匹配时,如果找到匹配项,则返回一个数组,数组的第一个元素是匹配到的字符串,之后的元素是每个括号所匹配到的字符串。

举个例子:

const pattern = /(\d{4})-(\d{2})-(\d{2})/;
const result = pattern.exec("2021-07-26");
console.log(result);

以上代码会输出如下结果:

["2021-07-26", "2021", "07", "26", index: 0, input: "2021-07-26", groups: undefined]

可以看到,返回的数组包含了匹配到的字符串及其每个小括号中的内容,而后面的 index 和 input 表示匹配的字符串在原字符串中的位置和原字符串本身。

exec方法示例

示例一

下面的代码展示了对字符串中所有连续数字的匹配和输出。

const pattern = /\d+/g;
const str = "hello 123 world 456!";
let result = pattern.exec(str);
while(result !== null){
  console.log(result[0]);
  result = pattern.exec(str);
}

上述代码使用了 /pattern/g 的形式,其中 g 代表全局匹配,即对整个字符串全部匹配。输出结果如下:

123
456

示例二

下面的代码展示了对价格字符串的匹配和提取价格部分。

const pattern = /(\$[0-9]+\.[0-9]{2})/g;
const str = "Apples cost $2.99 and oranges cost $1.99";
let result = pattern.exec(str);
while(result !== null){
  console.log(result[0]);
  result = pattern.exec(str);
}

上述代码使用了 /pattern/g 的形式,其中 g 代表全局匹配,即对整个字符串全部匹配。输出结果如下:

$2.99
$1.99

以上两个示例展示了 exec 方法的具体用法,希望可以帮助你更好地理解它的使用方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js正则表达式之exec方法讲解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 详解JS函数stack size计算方法

    详解JS函数stack size计算方法 栈大小及其作用 在JS中,每当函数调用时,就会创建一个称为“栈帧”的数据结构,用于存储调用状态和参数等信息。栈帧是一种后进先出的数据结构,用于保存函数调用链的关系。栈帧的大小取决于函数中使用的变量数量和它们的类型。 当一个函数被调用时,它会在当前栈顶位置创建一个新的栈帧。当函数返回时,栈帧会被弹出,将控制权返回给调用…

    JavaScript 2023年6月11日
    00
  • javascript中类的定义方式详解(四种方式)

    下面是“JavaScript中类的定义方式详解(四种方式)”的完整攻略。 1. ES6中的class关键字 在ES6中添加了class关键字,使得JavaScript也具有了面向对象编程的能力。 使用class定义一个类,实例化一个类用关键字new来实现。 class Person { constructor(name, age) { this.name =…

    JavaScript 2023年5月27日
    00
  • 一行代码实现纯数据json对象的深度克隆实现思路

    一行代码实现纯数据JSON对象的深度克隆实现思路,这个问题需要理解深浅拷贝的概念,然后利用JSON对象的序列化与反序列化特性进行实现。 深度克隆和浅拷贝的区别 两者之间的主要区别是,在深度克隆的情况下,如果原对象的某个属性值是引用类型,那么克隆后的新对象中对应的属性值如果发生改变,也不会影响原对象,这是因为新对象是重新创建了一份内存。浅拷贝则不同,它只是将原…

    JavaScript 2023年5月27日
    00
  • js父窗口关闭时子窗口随之关闭完美解决方案

    JS父窗口关闭时子窗口随之关闭是Web开发中常见的问题,很多网站都面临这个问题。这是因为子窗口的生命周期比父窗口短,如果不及时关闭,就会在用户离开页面后继续执行任务,可能会导致程序报错或耗费过多的资源。下面是一个完美解决方案的攻略。 1. 使用 window.onbeforeunload 事件 当父窗口即将关闭(例如用户点击关闭按钮时),window.onb…

    JavaScript 2023年6月10日
    00
  • JavaScript获取用户所在城市及地理位置

    JavaScript获取用户所在城市及地理位置可以通过浏览器的Geolocation API或第三方API实现。以下为详细攻略: 1. 使用浏览器的Geolocation API 1.1 获取经纬度 使用Geolocation API可以获取用户的经纬度信息,从而进一步获取用户所在城市等位置信息。 if (navigator.geolocation) { n…

    JavaScript 2023年6月11日
    00
  • js 把字符串当函数执行的方法

    将字符串当函数执行是 JavaScript 中一种常见的技巧,可以用来动态地执行函数,也可以用来解析表达式。下面是使用字符串将一个函数执行的示例: 假设我们有如下的函数: function sayHello(name) { console.log("Hello, " + name + "!"); } 我们可以将该函数的…

    JavaScript 2023年5月27日
    00
  • 一文掌握JavaScript数组常用工具函数总结

    一文掌握JavaScript数组常用工具函数总结 前言 JavaScript 是一种非常受欢迎的脚本语言,而数组是 JavaScript 中最常用的数据结构之一。在实际开发中,我们通常使用数组来存储和处理数据。本文将介绍一些常用的 JavaScript 数组工具函数,包括以下内容: 遍历数组 操作数组 搜索数组 遍历数组 forEach() forEach(…

    JavaScript 2023年5月27日
    00
  • JS中实现浅拷贝和深拷贝的代码详解

    浅拷贝和深拷贝是JavaScript中常用的两种复制对象的方法,两者的差别在于复制后对象所指向的地址是否相同。如果新生成的对象与原对象的内存地址相同,我们就称为浅拷贝;如果新生成的对象与原对象的内存地址不同,那么就称为深拷贝。 浅拷贝的实现 浅拷贝可以通过Object.assign()方法、扩展操作符或者遍历实现: Object.assign()方法实现浅拷…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部