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

在正则表达式中,通过使用括号将某个子字符串匹配成一个组,从而在匹配结果中获取该组的值。而通过$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日

相关文章

  • 基于javascript如何传递特殊字符

    要在JavaScript中传递特殊字符,需要使用转义字符来表示这些字符。常见的特殊字符包括单引号、双引号、反斜杠、换行符、制表符等。以下是关于如何在JavaScript中传递特殊字符的步骤和示例代码: 使用反斜杠 在JavaScript中,使用反斜杠来转义特殊字符。例如,要在字符串中表示单引号,可以使用反斜杠对其进行转义。 示例代码: let str = ‘…

    JavaScript 2023年5月19日
    00
  • JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法

    当我们使用 JavaScript 编写代码时,经常会遇到“Uncaught SyntaxError: Unexpected token ILLEGAL”这样的错误提示,而这个错误提示一般代表着代码中存在语法错误,但有时候我们也会遇到代码本身没有错误,但依然出现了这个错误提示的情况,究竟该如何解决呢?下面是详细的解决方法攻略: 一、检查代码语法 首先,我们需要…

    JavaScript 2023年5月18日
    00
  • Bootstrap表单Form全面解析

    Bootstrap表单Form全面解析 什么是Bootstrap表单Form? Bootstrap表单Form是Bootstrap前端框架中一个用于构建表单的组件,用于简化表单的开发过程。通过使用Bootstrap表单Form,开发者可以快速构建出漂亮、易用、兼容性好的表单,提高工作效率。Bootstrap表单Form主要包括水平布局和垂直布局两种形式,以及…

    JavaScript 2023年6月10日
    00
  • JavaScript 正则表达式使用详细参数

    下面是关于“JavaScript 正则表达式使用详细参数”的完整攻略。 正则表达式 正则表达式可以用来匹配符合某个模式的文本。在 JavaScript 中,可以使用 RegExp 对象来创建正则表达式。 RegExp 对象的创建 在 JavaScript 中,可以使用以下两种方式来创建一个正则表达式: 字面量方式 javascript let regExp …

    JavaScript 2023年6月10日
    00
  • JavaScript模拟实现Promise功能的示例代码

    下面是“JavaScript模拟实现Promise功能的示例代码”的完整攻略。 什么是 Promise Promise是 JavaScript 异步编程的一种解决方案,用于处理异步操作中的回调地狱问题,提高可维护性和可读性。它解决了回调函数多层嵌套的问题,通过链式调用的形式增加可读性,并通过 then方法捕获错误。 Promise 本质上是一个对象,从它可以…

    JavaScript 2023年5月28日
    00
  • javascript匿名函数实例分析

    JavaScript匿名函数实例分析 在JavaScript中,函数作为一等公民,被广泛应用于各种场景。函数有两种定义方式:命名函数和匿名函数。本文将详细讲解JavaScript匿名函数的实例分析。 什么是匿名函数? 匿名函数是指没有名称的函数,通常使用匿名函数来进行一些临时的操作。其定义方式如下: (function() { // code here })…

    JavaScript 2023年6月10日
    00
  • DOM基础教程之事件对象

    首先我们需要知道什么是DOM,它是文档对象模型(Document Object Model)的缩写,是W3C组织推荐的处理HTML和XML文档的标准API。在HTML中,DOM用于访问和操作文档中的元素。而在JavaScript中,DOM则是访问和操作HTML元素的标准方式。 DOM的事件机制是一种事件触发和事件处理的机制。一个事件通常是用户交互产生的,例如…

    JavaScript 2023年6月10日
    00
  • DOM3中的js textInput文本事件

    DOM3中的textInput事件详解 textInput事件是DOM3规范中新加入的文本输入事件,用于处理在元素中输入文本的情况。在此之前,开发人员通常使用keyup、keydown等事件来处理文本输入的情况,但这些事件存在一些问题,比如无法处理复制、粘贴等操作。 textInput事件的优势在于可以精确地跟踪用户的输入,并且可以在用户输入结束后触发,不需…

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