使用实例来详解 ES10 中的 String.match() 方法

阅读时长 4 分钟读完

使用实例来详解 ES10 中的 String.match() 方法

String.match() 是 JavaScript 内置的字符串方法,用于在字符串中查找匹配的文本并返回匹配结果。它接受一个正则表达式作为参数,也可以是一个字符串,返回一个数组,其中包含了所有匹配的字符串。在 ES10(即 ECMAScript 2019)中,这个方法有了一些新的功能和变化。

语法

String.match(regexp)

regexp 可以是一个正则表达式或者一个字符串。如果是字符串,它会被转换成一个等价的正则表达式。

返回的匹配结果是一个数组,其中包含了所有匹配的字符串。如果没有匹配到任何字符串,返回值将是 null

示例

-- -------------------- ---- -------
----- --- - ------ -------

-- -----------
----- ----------- - ----------------
------------------------- -- ----- ----

-- ---------
----- ------------ - ---------------
-------------------------- -- -----

在这个示例中,我们首先使用 /o/g 这个正则表达式来查找字符串 str 中所有的字母 “o”,结果是一个数组 ['o', 'o']。接着我们使用字母 “o”(即字符串 'o')作为参数来调用 match() 方法,返回的结果也是一个数组 ['o'],包含了字符串 str 中的第一个 “o”。

ES10 中的新特性

在 ES10 中, String.match() 方法引入了两个新的参数,可以更方便地控制返回结果的格式和内容。

1. 新参数:可选的第二个参数 startIndex

String.match(regexp, startIndex)

startIndex 是一个可选的整数参数,用于指定字符串开始查找的位置。如果不指定此参数,则从字符串的开头开始查找。

例如:

-- -------------------- ---- -------
----- --- - ------ -------

-- ------ --- ----
----- ----------- - --------------- ---
------------------------- -- -----

-- ------------- ----------
----- ------------ - --------------- ---
-------------------------- -- ----- ----

注意,startIndex 的值必须是非负整数。如果传入负数或者不是整数的值,会自动转换成 0。

2. 新特性:返回解构对象

在 ES10 中, String.match() 方法可以返回一个解构对象,其中包含了匹配结果的详细信息。这个对象包含了以下几个属性:

  • input:原始字符串,即调用 match() 的那个字符串;
  • groups:从正则表达式中提取的命名捕获组的信息;
  • index:第一个匹配项在原始字符串中的位置;
  • length:匹配结果数组的长度。

以下是一个使用解构对象的示例:

-- -------------------- ---- -------
----- --- - ------ --------

----- -------- - ----------------------------

----- - ------ ------- ------ ------ - - ---------
------------------- -- ------ -------
-------------------- -- --- -------- -- --------
------------------- -- -
-------------------- -- -

在这个示例中,我们先定义了一个正则表达式,用于匹配以单词开头的句子。接着我们调用 match() 方法,并将返回结果解构到变量 matchObj 中。最后我们访问了解构对象中的各个属性,可以发现它包含了匹配结果的所有信息:原始字符串、命名捕获组信息、首个匹配项的位置和数组长度。

总结

String.match() 方法是 JavaScript 中一个强大且常用的字符串方法,可以用于查找字符串中的文本内容。在 ES10 中, String.match() 方法引入了两个新参数和返回解构对象的功能,使其更加灵活和易用。

学习使用 String.match() 方法需要掌握正则表达式的语法和常用方法,例如字符类、重复次数、分组、捕获、前后查找等等。同时还需要熟悉各种正则表达式方法的特点和用法,例如 test()replace()exec() 等等。掌握这些知识可以让你更加娴熟地使用 String.match() 方法,并能够处理大量复杂的字符串操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65b2510cadd4f0e0ffb825ea

纠错
反馈