JS正则表达式村规
start at 2023/10/25.

JS正则表达式

由于各大平台都有正则表达式, 但是使用风格各有村规, 所以特地的要学习一下最普遍, 常用的 javascript 的正则表达式的使用方法

一个正则表达式由包含在斜杠内的模式组成:

var re = /ab+c/;

类型

断言

^$ 开头结尾
\b 单词边界(字母和空格之间)
\B 非单词边界
x(?=y) 先行断言, 匹配的是x
x(?!y) 先行否定断言
(?<=y)x 后行断言
(?<!y)x 后行否定断言

字符

\d 数字, [0-9]
\D 反,[^0-9]
\w 字母数字下划线,[A-Za-z0-9_]
\W
\s 单个空白字符->空格,制表符,换页符,换行符等空格[\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
\S
\t tab
\r 回车
\n 换行
\v 垂直tab(?
[\b] 退格键
\0 NUL字符
\cX 控制字符, X为A-Z中的一个字母, U+0001-U+001F
\xhh 代码hh十六进制对应的字符
\uhhhh 值hhhh对应的UTF-16代码单元
\u{hhhh}, \u{hhhhh} U+hhhh/U+hhhhh
\p{UnicodeProperty} Unicode字符属性(表情符, 日文, 汉字)
x|y x或y

组和范围

[] 最基础的, 不用说
(x) 捕获组
\n n为正整数, 第n个括号匹配的子串反向引用
(?<Name>x) 将x捕获到组<name>中
(?:x) 非捕获组, 匹配但是不作为结果返回

量词

* 0+
+ 1+
? 0/1
{n,} n+
{n, m} n-m
*?, +?, ??, {}? 反贪婪

Unicode属性转义

主要是不同语言的匹配, 不需要详细展开

模式

g 全局
i 不区分大小写
m 多行搜索
s 允许.匹配换行符
u 使用unicode码的模式进行匹配
y 使用粘性搜索

使用

不写了, 主要也不是在 js 里面用啊, 只要知道 js 的 regex 村规就行了

参考: mdn-正则表达式

2023/10/25
> CLICK TO back <