千家信息网

如何理解JS正则RegExp对象

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"如何理解JS正则RegExp对象",在日常操作中,相信很多人在如何理解JS正则RegExp对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何理解J
千家信息网最后更新 2024年09月22日如何理解JS正则RegExp对象

这篇文章主要介绍"如何理解JS正则RegExp对象",在日常操作中,相信很多人在如何理解JS正则RegExp对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何理解JS正则RegExp对象"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、RegExp对象

  • 正则表达式是描述字符模式的对象。

  • 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

  • 参考教材:w3cschool | JavaScript RegExp 对象

2、语法

2.1 定义

当使用 构造函数 创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)

/* 比如,以下两种方式的定义是等价的 */// 构造函数方式const reg = new RegExp("\\w+");// 字面量方式const reg = /\w+/;

2.2 修饰符

用于执行区分大小写和全局匹配

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。
/* 栗子 */const reg = /\w/gi

2.3 方括号

用于查找某个范围内的字符:

表达式描述
[abc]查找方括号之间的任何字符。
[^abc]查找任何不在方括号之间的字符。
[0-9]查找任何从 0 至 9 的数字。
[a-z]查找任何从小写 a 到小写 z 的字符。
[A-Z]查找任何从大写 A 到大写 Z 的字符。
[A-z]查找任何从大写 A 到小写 z 的字符。
[adgk]查找给定集合内的任何字符。
[^adgk]查找给定集合外的任何字符。
(red|blue|green)查找任何指定的选项。
/* 栗子 */const reg = /[0-9]/g

2.4 元字符

是拥有特殊含义的字符:

元字符描述
.查找单个字符,除了换行和行结束符。
\w查找单词字符。
\W查找非单词字符。
\d查找数字。
\D查找非数字字符。
\s查找空白字符。
\S查找非空白字符。
\b匹配单词边界。
\B匹配非单词边界。
\0查找 NUL 字符。
\n查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八进制数 xxx 规定的字符。
\xdd查找以十六进制数 dd 规定的字符。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。
/* 栗子 */const reg = /\d/g   // 匹配数字

2.5 量词

是拥有特殊含义的字符:

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。
n{X}匹配包含 X 个 n 的序列的字符串。
n{X,Y}匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}匹配包含至少 X 个 n 的序列的字符串。
n$匹配任何结尾为 n 的字符串。
^n匹配任何开头为 n 的字符串。
?=n匹配任何其后紧接指定字符串 n 的字符串。
?!n匹配任何其后没有紧接指定字符串 n 的字符串。
/* 栗子 */const reg = /\d+/g  // 匹配至少一个数字

2.6 方法

是拥有特殊含义的字符:

方法描述FFIE
compile编译正则表达式。14
exec检索字符串中指定的值。返回找到的值,并确定其位置。14
test检索字符串中指定的值。返回 true 或 false。14
方法描述FFIE
search检索与正则表达式相匹配的值。14
match找到一个或多个正则表达式的匹配。14
replace替换与正则表达式匹配的子串。14
split把字符串分割为字符串数组。14
/* 栗子 */var patt = /Hello/gvar result = patt.test(str) // 查找Hello字串 -> true

到此,关于"如何理解JS正则RegExp对象"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0