二维码

JavaScript 正则表达式

JavaScript 正则表达式


正则表达式是构成 搜索模式。

搜索模式可用于文本搜索和文本替换 操作。


什么是正则表达式?

正则表达式是构成搜索的字符序列 模式

在文本中搜索数据时,可以使用此搜索模式来描述要搜索的内容。

正则表达式可以是单个字符,也可以是更复杂的模式。

正则表达式可用于执行所有类型的文本搜索文本替换操作。

语法

1
/pattern/modifiers;
1
/yadu/i;

示例说明:

/w3schools/i 是正则表达式。

W3Schools 是一种模式(用于搜索)。

i 是一个修饰符(将搜索修改为不区分大小写)。


使用字符串方法

在 JavaScript 中,正则表达式通常与两个字符串一起使用 方法search()replace().

search()方法使用表达式搜索 match,并返回匹配项的位置。

replace()方法返回一个修改后的字符串,其中 模式被替换。


将String search() 与字符串一起使用

search()方法在字符串中搜索指定值并返回匹配项的位置:

:使用字符串在字符串中搜索“Yadu”
1
2
let text = "Visit Yadu!";  
let n = text.search("Yadu");
:n中的结果是
1
6


将String search() 与正则表达式一起使用

:使用正则表达式对字符串中的“Yadu”进行不区分大小写的搜索
1
2
let text = "Visit Yadu";  
let n = text.search(/yadu/i);
:n中的结果是
1
6


将 String replace() 与字符串一起使用

replace()方法将指定值替换为字符串中的另一个值:

1
2
let text = "Visit Microsoft!";  
let result = text.replace("Microsoft", "Yadu");


将String replace() 与正则表达式一起使用

:使用不区分大小写的正则表达式将 Microsoft 替换为 Yadu 在字符串中
1
2
let text = "Visit Microsoft!";  
let result = text.replace(/microsoft/i, "Yadu");
:res中的结果将是
1
Visit Yadu!


你注意到了吗?

正则表达式参数(而不是字符串参数)可以在上述方法中使用。
正则表达式可以使您的搜索功能更加强大(例如,不区分大小写)。


正则表达式修饰符

修饰符可用于执行不区分大小写的全局搜索:

修饰符 概述 尝试一下

| i | 执行不区分大小写的匹配 | |

| g | 执行全局匹配(查找所有匹配项而不是在第一个匹配项后停止) | |

| m | 执行多行匹配 | |

正则表达式模式

括号用于查找字符范围:

表达 概述 尝试一下

| [abc] | 查找括号内的任意字符 | |

| [0-9] | 查找括号内的任意数字 | |

| (x|y) | 查找任何用 | 分隔的替代方案 | |

字符是具有特殊含义的字符:

元字符 概述 尝试一下

| \d | 查找一个数字 | |

| \s | 查找空白字符 | |

| \b | 在单词开头查找匹配项,如下所示:WORD,或在单词末尾查找匹配项,如下所示:WORD | |

| \uxxxx | 查找十六进制数字 xxxx 指定的 Unicode 字符 | |

量词定义数量:

量词 概述 尝试一下

| n+ | 匹配任何至少包含一个 n 的字符串 | |

| n* | 匹配任何包含零次或多次出现 n 的字符串 | |

| n? | 匹配任何包含零次或一次出现 n 的字符串 | |


使用 RegExp 对象

在 JavaScript 中,RegExp 对象是一个正则表达式对象,具有 预定义的属性和方法。


使用 test()

test()方法是 RegExp 表达式方法。

它在字符串中搜索模式,并返回 true 或 false,具体取决于结果。

以下示例在字符串中搜索字符“e”:

1
2
const pattern = /e/;  
pattern.test("The best things in life are free!");
:由于字符串中有一个“e”,因此上述代码的输出将为
1
true

您不必先将正则表达式放在变量中。二 上面的行可以缩短为一行:

1
/e/.test("The best things in life are free!");

使用 exec()

exec()方法是 RegExp 表达式方法。

它在字符串中搜索指定的模式,并将找到的文本返回为 一个对象。

如果未找到匹配项,则返回一个空 (null) 对象。

以下示例在字符串中搜索字符“e”:

1
/e/.exec("The best things in life are free!");