返回
RegExp正则表达式教程-RegExp函数概述
前端
2023-09-17 22:17:22
正则表达式介绍
正则表达式(Regular Expression)是一种特殊的字符串形式,用来一种模式,通过正则表达式,可以快速实现文本的匹配、搜索、替换等操作。
RegExp函数概述
JavaScript提供了RegExp函数来创建正则表达式对象,该函数接受两个参数:
- 正则表达式字符串
- 标志(可选)
正则表达式字符串是用来匹配规则的字符串,标志(Flags)用来控制正则表达式对象的某些行为。
const regex = new RegExp('pattern', 'flags');
例如:
const regex1 = new RegExp('abc');
const regex2 = new RegExp('abc', 'i');
在上面的代码中,regex1将匹配字符串中的“abc”,不区分大小写。而regex2将匹配字符串中的“ABC”,因为i标志使正则表达式匹配不区分大小写。
RegExp对象
正则表达式对象是一个包含正则表达式信息的特殊对象。正则表达式对象的方法和属性可用于对字符串进行匹配、搜索和替换操作。
RegExp对象方法
方法 | 描述 |
---|---|
exec(string) | 在字符串中执行正则表达式匹配,并返回匹配结果。 |
test(string) | 在字符串中搜索正则表达式,并返回一个布尔值,表示是否匹配。 |
match(string) | 在字符串中匹配所有正则表达式,并返回一个数组,包含所有匹配结果。 |
search(string) | 在字符串中搜索正则表达式,并返回匹配结果的索引。 |
replace(string, newString) | 用newString替换字符串中所有匹配正则表达式的子串。 |
split(string, limit) | 将字符串按照正则表达式拆分为子字符串,并返回一个数组,包含所有子字符串。 |
RegExp对象属性
属性 | 描述 |
---|---|
source | 正则表达式字符串。 |
flags | 正则表达式标志。 |
global | 一个布尔值,表示正则表达式是否为全局匹配。 |
ignoreCase | 一个布尔值,表示正则表达式是否不区分大小写。 |
multiline | 一个布尔值,表示正则表达式是否支持多行匹配。 |
RegExp语法
正则表达式字符串由一系列特殊字符和普通字符组成。特殊字符具有特殊含义,普通字符匹配其本身。
特殊字符
字符 | 描述 |
---|---|
\ | 转义字符。用于转义特殊字符,使其匹配其本身。 |
^ | 行首匹配。匹配字符串的开头。 |
$ | 行尾匹配。匹配字符串的结尾。 |
. | 任意字符匹配。匹配任何一个字符。 |
* | 零次或多次匹配。匹配前面的子表达式零次或多次。 |
+ | 一次或多次匹配。匹配前面的子表达式一次或多次。 |
? | 零次或一次匹配。匹配前面的子表达式零次或一次。 |
{n} | n次匹配。匹配前面的子表达式n次。 |
{n,} | n次或更多次匹配。匹配前面的子表达式n次或更多次。 |
{n,m} | n到m次匹配。匹配前面的子表达式n到m次。 |
[abc] | 字符集合。匹配方括号内的任何一个字符。 |
[^abc] | 非字符集合。匹配不在方括号内的任何一个字符。 |
(abc) | 分组。将子表达式分组。 |
(?=abc) | 正则表达式肯定前瞻。匹配前面是abc的子字符串。 |
(?!abc) | 正则表达式否定前瞻。匹配前面不是abc的子字符串。 |
(?<=abc) | 正则表达式肯定后顾。匹配后面是abc的子字符串。 |
(?<!abc) | 正则表达式否定后顾。匹配后面不是abc的子字符串。 |
实例
以下是一些正则表达式实例:
^abc$ #匹配以abc开头的并以abc结尾的行
[a-zA-Z0-9] #匹配任何字母或数字
[abc] #匹配abc中的任何一个字符
[^abc] #匹配不属于abc中的任何一个字符
(abc) #匹配子字符串abc
(?=abc) #匹配前面是abc的子字符串
总结
正则表达式是一种强大的工具,可用于在文本中进行搜索、匹配和替换操作。JavaScript中的RegExp函数和RegExp对象可以帮助我们轻松创建和使用正则表达式。