Skip to content

常见的正则表达式

精确字符串匹配

  • 使用 ^$ 锚点分别匹配字符串的开头和结尾。
  • 在两个锚点之间添加要匹配的字符串。
const regexp = /^abc$/;
// 其中 'abc' 是要精确匹配的字符串

匹配空字符串

  • 使用 ^$ 锚点分别匹配字符串的开头和结尾。
  • 在两个锚点之间不添加任何字符,以匹配空字符串。
const regexp = /^$/;

匹配空白字符序列

  • 使用 \s 元字符序列匹配任何空白字符,包括空格、制表符、换行符等。
  • 使用 + 量词匹配前一个字符的一个或多个出现。
  • 添加全局标志 (g) 以匹配字符串中的所有匹配项。
const regexp = /\s+/g;
  • 使用\w模式匹配字母字符,使用\s模式匹配空白字符。
  • 使用[]来创建一个字符类,其中包含字母字符和空白字符。
  • 添加全局标志(g)以匹配字符串中的所有出现。
  • 添加忽略大小写标志(i)以匹配大写和小写字符。
const regexp = /[a-zA-Z\s]/gi;

匹配换行符

  • 根据环境的不同,换行符可以用不同的方式表示。
  • 使用\r字符匹配回车符,使用\n字符匹配换行符,使用\r\n序列匹配回车符后跟换行符。
  • 添加全局(g)和多行(m)标志以匹配字符串中模式的所有出现。
const regexp = /\r|\n|\r\n/gm;

匹配非单词字符

  • 使用否定(^)来匹配任何不是单词字符(\w)或空白字符(\s)的字符。
  • 添加全局标志(g)以匹配字符串中的所有出现。
  • 添加忽略大小写标志(i)以匹配大写和小写字符。
const regexp = /[^\w\s]/gi;

匹配字母数字、破折号和连字符

  • 使用^$锚点分别匹配字符串的开头和结尾。
  • 使用a-zA-Z0-9-模式匹配任何字母数字字符、破折号和连字符。
  • 使用+量词匹配前一个字符的一个或多个出现。
  • 在匹配URL片段时特别有用。
const regexp = /^[a-zA-Z0-9-_]+$/;

匹配字母和空白字符

  • 使用^$锚点分别匹配字符串的开头和结尾。
  • 使用a-zA-Z\s模式匹配任何字母和空白字符。
  • 使用+量词匹配前面模式的一个或多个出现。
const regexp = /^[A-Za-z\s]+$/;

不包含某个模式

  • 使用^$锚点分别匹配字符串的开头和结尾。
  • 使用负向先行断言(?!)匹配任何不后跟要排除的模式的字符。
  • 添加全局标志(g)以匹配字符串中所有出现的模式。
  • 要确保不包含多个模式,请使用|字符将它们分隔开。
const regexp = /^((?!(abc|bcd)).)*$/;
// 其中'abc'和'bcd'是要排除的模式

方括号内的文本

  • 使用\(\)字符分别匹配开括号和闭括号。
  • 在两者之间使用捕获组,并排除闭括号字符。
  • 使用+量词根据需要匹配一个或多个字符。
  • 添加全局标志(g)以匹配字符串中所有出现的模式。
  • \(\)替换为\[\]以匹配方括号,并用\{\}替换以匹配花括号。
const regexp = /\(([^)]+)\)/g;

验证GUID/UUID

  • 使用^$锚点分别匹配字符串的开头和结尾。
  • 使用数字字符范围和量词分别验证GUID/UUID的每个段。
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;

验证日期格式 (DD/MM/YYYY)

  • 使用 ^$ 锚点分别匹配字符串的开头和结尾。
  • 使用数字字符范围和量词分别验证日期的每个部分。
  • 更改部分和分隔符的顺序以匹配不同的格式。
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;

将字符串分成 n 大小的块

  • 使用 .{1,n} 量词匹配任意字符出现 1n 次。
  • 添加全局标志 (g) 来匹配字符串中模式的所有出现。
const regexp = /.{1,2}/g;
// 其中 '2' 是每个块的字符数