Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • JavaScript

    • js 编码指南
    • 日期使用斜杠 点 中划线分隔的不同
    • forEach 会改变原数组值吗
    • 前端表单验证常用的正则表达式 - reg
    • JS 如何取得 URL 里的参数
    • JavaScript 数组去重
    • JavaScript 循环中断研究与总结-关键字篇
    • JavaScript 循环中断研究与总结-用法篇
    • js 中的 Error
    • 跳出 forEach
    • Location 对象
    • Date 方法预览
    • Reg 正则中的问题
    • JavaScript toFixed() 方法
    • query 和 params 的使用区别
    • axios post 请求中下载文件流
    • 实用的 js 技巧
    • JS 之数组的几个不 low 操作
    • 深入浅出深拷贝与浅拷贝
    • 如何实现一个深拷贝
    • 使用 iframe 中的一些问题
    • 在 js 中更好地使用数组
    • echarts 在坐标轴两侧各增加一格坐标
    • 从头认识js的事件循环模型
    • moment 根据周截至日算出指定月有几周及开始结束日期
    • 正则 reg 中 /number 的用法
      • 释义
      • 例子
      • 参考资料
    • 正则 reg 中 match 和 exec 异同
  • TypeScript

  • Vue

  • ElementUI

  • React

  • AntD

  • 前端
  • JavaScript
Henry
2022-10-04
目录

正则 reg 中 /number 的用法

# 释义

1、正则表达式中“\number”表示反向引用,表示引用一个捕获组,需要和小括号“()”一起使用

2、正则捕获组的下标从 0 开始,下标为 0 的组是整个表达式,下标为 1 的表示从左到右开始的第一个左括号所包含的值,后面的数字以此类推

3、捕获组在匹配成功时,会将子表达式匹配到的内容,保存到内存中一个以数字编号的组里,可以简单的认为是对一个局部变量进行了赋值,这时就可以通过反向引用的方式,引用这个局部变量的值。

4、反向引用必须要与捕获组一同使用,如果没有捕获组,而使用了反向引用的语法,不同语言的处理方式不一致,有的语言会抛异常,有的语言会当作普通的转义处理

# 例子

let r = 'AAABBCCAAAA DDE666FF'

// 注:
// * 表示零个或多个,所以该匹配值可以有零个或者多个
// + 表示至少一个或多个,所以该匹配值至少一个或者多个
// 注意 \w 包含数字,以下都要注意这一点

// 正常匹配单个字符
let match1 = r.match(/(\w)/g)
console.log('match1 :', match1)
// match1 : [ 'A','A','A','B','B','C','C','A','A','A','A','D','D','E','6','6','6','F','F' ]

// 匹配模式:单个字符 + 第一个括号中的匹配值 ( * —— 有零个或者多个)
let match2 = r.match(/(\w)\1*/g)
console.log('match2 :', match2)
// match2 : [ 'AAA', 'BB', 'CC', 'AAAA', 'DD', 'E', '666', 'FF' ]

// 匹配模式:单个字符 + 第一个括号中的匹配值 ( + —— 至少一个或者多个)
let match3 = r.match(/(\w)\1+/g)
console.log('match3 :', match3)
// match3 : [ 'AAA', 'BB', 'CC', 'AAAA', 'DD', '666', 'FF' ]

// 匹配模式:单个字符 + 单个数字 // 注意 \w 包含数字,以下都要注意这一点
let match4 = r.match(/(\w)(\d)/g)
console.log('match4 :', match4)
// match4 : [ 'E6', '66' ]

// 匹配模式:单个字符 + 单个数字 + 第一个括号中的匹配值 ( * —— 有零个或者多个)
let match5 = r.match(/(\w)(\d)\1*/g)
console.log('match5 :', match5)
// match5 : [ 'E6', '66' ]

// 匹配模式:单个字符 + 单个数字 + 第一个括号中的匹配值 ( + —— 至少一个或者多个)
let match6 = r.match(/(\w)(\d)\1+/g)
console.log('match6 :', match6)
// match6 : [ '666' ]

// 匹配模式:单个字符 + 单个数字 + 第一个括号中的匹配值 ( * —— 有零个或者多个)+第二个括号中的匹配值 ( * —— 有零个或者多个)
let match7 = r.match(/(\w)(\d)\1*\2*/g)
console.log('match7 :', match7)
// match7 : [ 'E666' ]

// 匹配模式:单个字符 + 单个数字 + 第一个括号中的匹配值 ( * —— 有零个或者多个)+第二个括号中的匹配值 ( + —— 至少一个或者多个)
let match8 = r.match(/(\w)(\d)\1*\2+/g)
console.log('match8 :', match8)
// match8 : [ 'E666' ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 参考资料

  • 正则中\1的用法---反向引用 - 青 S 衫% - 博客园 (opens new window)
编辑 (opens new window)
#Js#Reg
上次更新: 5/27/2023, 1:02:05 PM
moment 根据周截至日算出指定月有几周及开始结束日期
正则 reg 中 match 和 exec 异同

← moment 根据周截至日算出指定月有几周及开始结束日期 正则 reg 中 match 和 exec 异同→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式