JavaScript中字符串匹配方法的快速指南

来自菜鸟教程
跳转至:导航、​搜索

String.prototype.match()(又名:字符串的匹配方法)可以让您在字符串或任何数据匹配时切换字符串或设置条件。 然后它将该数据存储在一个新数组中。

首先是语法,然后是解释:

let newArray = string.match(condition);

术语

字符串 match() 方法将返回一个数组,其中的项目与字符串中提供的 regular expression 匹配。 您可以 在此处 阅读有关 JavaScript 中正则表达式的更多信息。

请记住,当所有条件都匹配时,这些结果将存储在一个新的 array 中。

举个例子:

const intro = "Hello Alligators, Hello Devs, how are you?"

const regex = /Hello/g;

const greeting = intro.match(regex);

上面将给我们一个这样的数组:["Hello", "Hello"]。 如果我们知道要匹配的确切字符串,这很好用,但是动态内容或实际用例呢?

这是一个在字符串中查找重复字母的简单示例:

const str = 'See you later, Alligator! Not so soon baboon!';
const matches = str.match(/([a-z])\1+/gi);

console.log('H' + matches.join(""));
// "Heelloooo"

虽然这些都是简单的例子,但是你对正则表达式了解得越深,这个字符串方法就会变得越强大。 简单地使用 i 来区分大小写允许匹配方法突出显示更多条目。



匹配方法有3种模式……

  • 1st:如果 g(global) 标志用于您的 RegEx,您将获得存储在数组中的所有结果。
  • 2nd:如果没有使用 g 标志,第一个匹配将返回一个数组,其中键/值共享第一个匹配表达式的索引,完整输入,然后是捕获组。 换言之,与使用 RegExp.exec() 的结果相同。
let newYear = "Happy New Year";
let results = newYear.match(/new/i);
// [ 'New', index: 6, input: 'Happy New Year', groups: undefined ]
  • 3rd:如果没有匹配,该方法返回 null,或者,使用以下代码,一个空数组:
let results = newYear.match(regex) || [];

结论

Match 是一种有趣的小方法,可以用于许多创造性的方式,例如从段落中提取关键字或在条件与正则表达式匹配时替换单词。 花点时间了解 JavaScript 中的 正则表达式 。 它会让 match 对你更有用。