📜  js 正则表达式 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:02.880000             🧑  作者: Mango

JS 正则表达式 - Javascript

正则表达式是一种强大的文本匹配工具,用于检测文本中的模式。在JavaScript中,您可以使用RegExp对象创建正则表达式。

创建正则表达式

以下是不同方式创建正则表达式的方法:

字面量
const regex = /pattern/;

注意:在使用字面量创建正则表达式时,正斜杠(/)用于分隔模式和标志,不要在模式中使用正斜杠(/),否则会破坏正则表达式的语法。

构造函数
const regex = new RegExp('pattern');
标志

正则表达式的标志用于指定搜索行为。在JavaScript中,以下标志可用:

  • i - 不区分大小写匹配。
  • g - 执行全局匹配,找到所有匹配而不是在第一个匹配后停止。
  • m - 多行匹配。

在创建正则表达式时,您可以使用其中一个或多个标志,例如:

const regex = /pattern/gi;

在上面的示例中,正则表达式用于执行不区分大小写的全局匹配。

匹配

在JavaScript中,您可以使用RegExp对象的exec()和test()方法来执行正则表达式匹配。

exec()方法

exec()方法检索字符串中的指定值。返回找到的值,并确定其位置和内容。

const str = 'The quick brown fox jumps over the lazy dog.';
const regex = /quick|brown|lazy/;

let result;

while (result = regex.exec(str)) {
  console.log(`Found '${result[0]}' at position ${result.index}`);
}

在上面的示例中,正则表达式用于检索字符串中的单词'quick','brown'或'lazy',并使用while循环重复执行直到所有匹配项都被找到。

test()方法

test()方法测试一个字符串是否与某个模式匹配。返回true或false。

const regex = /fox/;
const str1 = 'The quick brown fox jumps over the lazy dog.';
const str2 = 'The quick brown cat jumps over the lazy dog.';

console.log(regex.test(str1));  // true
console.log(regex.test(str2));  // false

在上面的示例中,正则表达式用于测试字符串是否包含单词'fox'。

替换

在JavaScript中,您可以使用字符串的replace()方法并指定与正则表达式匹配的字符串或函数来进行替换。

const str = 'The quick brown fox jumps over the lazy dog.';
const regex = /quick|brown|lazy/;

const newStr = str.replace(regex, (match) => match.toUpperCase());

console.log(newStr);

在上面的示例中,正则表达式用于替换字符串中的单词'quick','brown'和'lazy'为大写。

JavaScript正则表达式方法

在JavaScript中,RegExp对象具有许多用于执行正则表达式操作的方法。以下是其中一些方法:

  • exec() - 在字符串中执行搜索,并返回搜索结果的数组。
  • test() - 在字符串中测试搜索,并返回true或false。
  • match() - 在字符串中搜索匹配,并返回包含匹配结果的数组。
  • matchAll() - 在字符串中搜索所有匹配,并返回迭代器。
  • search() - 在字符串中搜索并返回匹配的位置。
  • replace() - 在字符串中搜索并替换匹配的子字符串。
  • split() - 使用匹配项分割字符串,并返回包含结果的数组。
反向引用

在JavaScript正则表达式中,反向引用可以将一个模式中匹配的子字符串引用到另一个模式中。在反向引用中,您可以使用圆括号()将一个子字符串分组,并在后面引用这个组。

const regex = /(\w+)\s(\w+)/;
const str = 'John Smith';

console.log(str.replace(regex, '$2 $1'));

在上面的示例中,反向引用用于交换两个单词的顺序。

结论

在JavaScript中,正则表达式是一种非常有用的工具,用于处理文本和字符串。您可以使用RegExp对象的方法来执行正则表达式的操作,如搜索、替换和分割。