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 对你更有用。