返回

正则狂想曲:揭秘 JavaScript 的正则表达式方法宝典

前端

踏入 JavaScript 的正则表达式世界,开启一段探索之旅。正则表达式(Regular Expressions)是操纵字符串的强大工具,JavaScript 为我们提供了丰富的 RegExp 对象方法,赋予了我们纵横捭阖的能力。

exec():捕捉匹配

exec() 方法在字符串中搜索第一个匹配正则表达式的子串,并以数组形式返回结果。数组包含匹配的子串以及与正则表达式模式匹配的组。

const re = /ab+c/;
const str = 'abbbbc';
const result = re.exec(str);

console.log(result); // ['abbbc', 'bb']

test():匹配是否存在

test() 方法检查字符串中是否存在与正则表达式匹配的子串,返回布尔值 true 或 false。

const re = /ab+c/;
const str = 'abbbbc';
const result = re.test(str);

console.log(result); // true

match():返回所有匹配

match() 方法在字符串中搜索所有与正则表达式匹配的子串,并返回一个数组。如果未找到匹配项,则返回 null。

const re = /ab+c/;
const str = 'abbbbcdeabbbbc';
const result = str.match(re);

console.log(result); // ['abbbc', 'abbbc']

search():检索第一个匹配项的位置

search() 方法在字符串中搜索第一个与正则表达式匹配的子串,并返回其在字符串中的位置。如果未找到匹配项,则返回 -1。

const re = /ab+c/;
const str = 'abbbbcdeabbbbc';
const result = str.search(re);

console.log(result); // 0

replace():替换匹配项

replace() 方法在字符串中搜索与正则表达式匹配的所有子串,并用指定的替换字符串替换它们。

const re = /ab+c/;
const str = 'abbbbcdeabbbbc';
const result = str.replace(re, 'ABC');

console.log(result); // 'ABCdeABC'

split():按匹配项拆分字符串

split() 方法在字符串中搜索与正则表达式匹配的所有子串,并在匹配项处将字符串拆分成一个数组。

const re = /ab+c/;
const str = 'abbbbcdeabbbbc';
const result = str.split(re);

console.log(result); // ['', 'de', '']

flags:定制正则行为

正则表达式模式可以使用 flags 来定制其行为。常见的 flags 包括:

  • g(全局): 匹配所有出现的子串
  • i(不区分大小写): 不区分字符串和正则表达式模式中的大小写
  • m(多行): 将字符串视为多行文本
  • s(点号): 将点号 (.) 与换行符匹配
  • u(Unicode): 使用 Unicode 字符属性
const re = /ab+c/gi; // 全局、不区分大小写
const str = 'ABBBCdeABBBbc';
const result = re.exec(str);

console.log(result); // ['ABBBC', 'BB']

结语

JavaScript 的 RegExp 对象方法提供了操纵字符串的强大能力。掌握这些方法将使您能够编写复杂且高效的正则表达式模式,解锁文本处理和数据验证的无穷潜力。从捕捉匹配到替换内容,再到拆分字符串,正则表达式是 JavaScript 工具箱中不可或缺的利器。

现在,请尽情探索正则表达式的奇妙世界,让 JavaScript 的力量为您所用!