js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果

yizhihongxing

在正则表达式中,通过使用括号将某个子字符串匹配成一个组,从而在匹配结果中获取该组的值。而通过$1~$9属性,可以返回匹配文本的子匹配内容。以下是详细解释:

$1, $2, $3, $4, $5, $6, $7, $8, $9属性

这些属性用于获取子匹配到的字符串,其对应的匹配组由圆括号指定。例如:

const regex = /^(\d{4})-(\d{2})-(\d{2})$/;
const dateString = '2021-01-28';
const matchResult = regex.exec(dateString);
console.log(matchResult[1]);
console.log(matchResult[2]);
console.log(matchResult[3]);

以上代码中,当匹配字符串2021-01-28的时候,正则表达式/^(\d{4})-(\d{2})-(\d{2})$/将字符串分为3个匹配组:(\d{4})(\d{2})(\d{2}),分别代表年、月、日的数字部分。通过matchResult[1]matchResult[2]matchResult[3]可以获取到匹配结果的年、月、日部分的文本。

如果正则表达式中有多个括号,则可以通过$1$2$3等属性获取到对应的子匹配文本。例如:

const regex = /([A-Z]\w+)\s([A-Z]\w+)/;
const name = 'Steve Jobs';
const matchResult = regex.exec(name);
console.log(matchResult[1]);
console.log(matchResult[2]);
console.log(`Hello, ${matchResult[1]} ${matchResult[2]}!`);

以上代码中,正则表达式 /([A-Z]\w+)\s([A-Z]\w+)/ 表示匹配一个带空格的两个子字符串列表达式。正则表达式包含两个括号分组,第一个括号分组匹配以大写字母开头的单词,第二个括号分组匹配在第一个分组后的一个空格。

在执行上述代码后,控制台将打印以下结果:

Steve
Jobs
Hello, Steve Jobs!

这里$1对应Steve$2对应Jobs

总结

使用$1$2$3等属性可以很方便地访问正则表达式的子匹配文本。但是如果使用这些属性访问一个没有匹配的文本,则将会返回undefined。此外,如果正则表达式存在很多括号分组,那么建议使用具有更好可读性和可维护性的变量名,而不是使用$1$2等直接的属性名称。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果 - Python技术站

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

相关文章

  • BootstrapTable与KnockoutJS相结合实现增删改查功能【二】

    下面是关于 BootstrapTable 与 KnockoutJS 相结合实现增删改查功能的攻略,包含以下几个部分: 确认基本配置 初始化 BootstarpTable 和 KnockoutJS 实现增删改查功能 1. 确认基本配置 在开始之前,我们需要确认以下几点: 页面中需要引入 Bootstrap 和 jQuery 库。 在页面中引入 Knockout…

    JavaScript 2023年6月10日
    00
  • JavaScript 跨域之POST实现方法

    下面是详细讲解“JavaScript 跨域之POST实现方法”的完整攻略。 什么是跨域? 跨域是指在同一页面中,页面中的资源通过不同的域名来访问。比如,你的页面在 A 域名,但是想要访问 B 域名上的资源,这就是跨域。 常见的跨域问题 Ajax 跨域请求 iframe 跨域嵌套 脚本跨域请求 解决方法 跨域问题的解决方法有很多,这里重点介绍两种解决 Ajax…

    JavaScript 2023年5月27日
    00
  • JavaScript中字符串的常用操作方法及特殊字符

    当我们在使用JavaScript处理字符串时,有许多常用的操作方法和一些特殊字符需要重点了解。 字符串的常用操作方法 以下是一些常用的字符串操作方法: 1. 获取字符串长度 通过 .length 属性可以获取字符串的长度。 示例代码: const str = "Hello World!"; console.log(str.length);…

    JavaScript 2023年5月28日
    00
  • JSON与JS对象的区别与对比

    JSON和JavaScript对象都是在Web应用程序中处理数据的重要方式。虽然它们看上去很相似,但它们有着不同的特性和适用场景。下面是关于JSON与JS对象的区别与对比的详细说明。 什么是JS对象? JS对象是一种数据类型。它是所有JS基本类型之一,可以通过定义一个变量并使用构造函数Object()来创建对象。例如: var person = new Ob…

    JavaScript 2023年5月27日
    00
  • Javascript获取数组中的最大值和最小值的方法汇总

    下面我来详细讲解一下“Javascript获取数组中的最大值和最小值的方法汇总”。 1. Math对象函数法 我们可以使用Math对象提供的max和min函数,来获取数组中的最大值和最小值: var arr = [1, 2, 3, 4, 5]; var max = Math.max.apply(null, arr); var min = Math.min.a…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript中的事件流和事件处理程序

    详解JavaScript中的事件流和事件处理程序 JavaScript中的事件是指用户与网页进行交互时所产生的所有动作,比如鼠标点击、键盘敲击、窗口滚动等等。JavaScript需要对这些事件进行处理,而事件的类型和顺序则由事件流来控制。本篇文章将详细介绍JavaScript中的事件流和事件处理程序,并提供示例说明。 事件流 事件流描述的是从页面中接收事件的…

    JavaScript 2023年5月18日
    00
  • JavaScript 五大常见函数

    JavaScript 五大常见函数 在 JavaScript 编程中,有五大常见函数,它们分别是:parseInt()、parseFloat()、isNaN()、toFixed() 和 toString()。下面我们将结合代码示例来详细讲解这五大常见函数。 parseInt() parseInt() 方法将一个字符串进行解析,返回整数值。 // 示例1 le…

    JavaScript 2023年5月18日
    00
  • JS实现的自动打字效果示例

    接下来我将为你讲解“JS实现的自动打字效果示例”的完整攻略。 这是一个比较常见的网页效果,可以使用 JavaScript 来实现。整个过程大体可分为以下几个步骤: 步骤一:准备 HTML 结构 首先,你需要准备一个包含文字内容的 HTML 元素,例如: <div id="text"> <p>这是一段文本内容,我们将…

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