Appearance

正则表达式

Pcjmy2023-12-06JavaScriptJavaScript

正则表达式

什么是正则表达式

正则表达式(regular expression)描述了字符串的“构成模式”,经常被用于检查字符串是否符合预定的格式要求。

正则表达式的创建

  • 使用/内容/的语法形式,可以快速创建正则表达式
  • 也可以使用new RegExp('内容')的形式,创建正则表达式
  • 使用typeof运算符检查正则表达式的类型,结果是object

字符的转义:

  • 在特殊字符之前的反斜杠\表示下一个字符不是特殊字符,应该按照字面理解
  • 不管一个符号有没有特殊意义,都可以在其之前加上一个\以确保它表达的是这个符号本身
var regexp1 = /^\d{6}$/;
var regexp2 = new RegExp('^\\d{6}$');

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

元字符

“元字符”是指一位指定类型的字符。

元字符功能
\d匹配一个数字
\D匹配一个非数字字符
\w匹配一个单字字符(字母、数字或者下划线)
\W匹配一个非单字字符
\s匹配一个空白字符,包括空格、制表符和换行符
.任意字符
^匹配开头
$匹配结尾

方括号表示法

  • 使用方括号,比如[xyz],可以创建一个字符集合,表示匹配方括号中的任意字符
  • 可以使用短横-来指定一个字符范围,^表示否定
元字符等价的方括号表示法
\d[0-9]
\D[^0-9]
\w[A-Za-z0-9_]
\W[^A-Za-z0-9_]

量词

量词意义
*匹配前一个表达式0次或多次。等价于{0,}
+匹配前面一个表达式1次或者多次。等价于{1,}
?匹配前面一个表达式o次或者1次。等价于{0,1}
{n}n是一个正整数,匹配了前面一个字符刚好出现了n次
{n,}n是一个正整数,匹配前一个字符至少出现了n次
{n,m}n和m都是整数。匹配前面的字符至少n次,最多m次

修饰符

修饰符也叫作标志(flags),用于使用正则表达式实现高级搜索

修饰符意义
i不区分大小写搜索
g全局搜索

修饰符的使用

var regexp1 = /m/gi;
var regexp2 = new RegExp('m', 'gi');

相关方法

方法简介
test()测试某字符串是否匹配正则表达式,返回布尔值
exec()根据正则表达式,在字符串中进行查找,返回结果数组或者null
var str = 'abc123def456ghi789';
var regexp = /\d+/g; // 这里加g参数后正则表达式是有状态的

var result;
while (result = regexp.exec(str)) {
  console.log(result[0]);
}

在字符串中使用正则表达式

方法简介
search()在字符串中根据正则表达式进行查找匹配,返回首次匹配到的位置索引,测试不到则返回-1
match()在字符串中根据正则表达式进行查找匹配,返回一个数组,找不到则返回null
replace()使用替换字符串替换掉匹配到的子字符串,可以使用正则表达式
split()分隔字符串为数组,可以使用正则表达式
Last Updated 2024-01-24 15:57:26