ES6 中的 RegExp 解释?


ES6 是 2015 年发布的最新 JavaScript 版本。我们将学习 RegExp(即正则表达式)的所有功能,这些功能包含在 Es6 中。

什么是正则表达式以及它的用法

正则表达式是一个表示特定搜索模式的字符串,包含不同的字符,例如数字、字母和特殊字符。

让我们了解正则表达式的实时用法。

我们希望大家过去都填写过一些表单,并且见过一些特定的表单字段验证错误。例如,如果您未输入包含“@”字符的电子邮件或输入了非 10 位数的手机号码,则会显示错误。因此,我们可以使用正则表达式进行表单字段输入验证。

此外,我们还可以使用正则表达式在字符串中查找特定子字符串,并将其替换为新字符串。

正则表达式可用于密码验证,以确保密码强度。

正则表达式还有很多其他用途,如上所述。

语法

我们可以使用以下两种不同的方式定义正则表达式。

  • 字面量表示法 - 用户需要在两个正斜杠之间定义搜索模式,以将搜索模式表示为正则表达式。

myImage.style.display = "block";
  • 构造函数 - 我们可以使用带有 new 关键字的 RegExp() 构造函数来定义正则表达式对象。用户可以按照以下语法使用构造函数定义正则表达式。

var pattern = new RegExp(search_pattern, attributes);

属性

我们可以使用以下多个属性的组合。

属性

描述

G

用于字符串中的全局匹配。

I

忽略字符串中的大小写。

M

用于多行匹配。

U

U 代表 Unicode,它允许将 RegExp 视为 Unicode 代码点的序列。

Y

用于从最后一个索引开始匹配。

构建正则表达式

我们可以使用不同的特殊字符来构建正则表达式,我们将在下面的示例中了解这些字符。

方括号

我们可以使用方括号在正则表达式模式中定义字符范围。

方括号表示法

描述

[abc…]

在搜索字符串中搜索方括号中的任何单个字符。

[^abc…]

搜索不在方括号中的任何单个字符。

[DL]

搜索 D 和 L 之间的任何单个大写字符。

[dl]

搜索 D 和 L 之间的任何单个小写字符。

[09]

搜索 0 和 9 之间的任何单个数字。

示例 1

在此示例中,我们使用修饰符“g”和方括号表示法创建了一个模式,并将该模式与消息字符串进行了匹配。您可以观察到它只从 JavaScript 中返回“Script”,因为我们没有使用“I”修饰符忽略大小写。

<html>
<body>
   <h2> Using the bracket notations in the regular expression </h2>
   <p id="output"> </p>
</body>
   <script>
      let output = document.getElementById("output");
      let message ="TutorialsPoint is a great website to learn JavaScript and Typescript.";
      // defining the regular expression pattern
      var pattern = new RegExp("Script", "g");
      // matching the pattern in string
      var script_match1 = message.match(pattern);
      output.innerHTML +=
      "All matches without case ignorance: " + script_match1 + "<br/>";
   </script>
</html>

示例 2

在此示例中,我们找到所有不区分大小写的匹配项。您可以观察到我们使用“I”修饰符忽略了大小写。

<html>
<body>
   <h2> Using the bracket notations in the regular expression </h2>
   <p id="output"> </p>
   </body>
   <script>
      let output = document.getElementById("output");
      let message ="TutorialsPoint is a great website to learn JavaScript and Typescript.";
      // Matching with case ignorance
      pattern = new RegExp("Script", "gi");
      script_match1 = message.match(pattern);
      output.innerHTML +=
      "All matches with case ignorance:" + script_match1 + "<br/>";
   </script>
</html>

示例 3

在此示例中,我们匹配“a”和“c”之间的字符。

<html>
<body>
   <h2> Using the bracket notations in the regular expression </h2>
   <p id="output"> </p>
   </body>
   <script>
      let output = document.getElementById("output");
      let message ="TutorialsPoint is a great website to learn JavaScript and Typescript.";
      // matching from a particular range
      pattern = new RegExp("[a-c]", "g");
      script_match1 = message.match(pattern);
      output.innerHTML +=
      "All matches between a to c: " + script_match1 + "<br/>";
   </script>
</html>

量词

我们可以使用量词来匹配给定字符串中特定数量的字符。我们可以使用不同的特殊字符来创建不同类型的量词。

量词

描述

C+

搜索包含一个或多个 C 的字符串。

C*

搜索包含零个或多个 C 的字符串。

C{M}

搜索包含正好 M 个 C 的字符串。

C{M, N}

搜索包含 M 和 N 之间总数为 C 的字符串。

C{M, }

搜索包含至少 M 个 C 的字符串。

C$

搜索以 C 结尾的字符串。

^C

搜索以 C 开头的字符串。

示例

在此示例中,我们在创建正则表达式时使用了不同的量词,并将消息字符串与正则表达式模式进行了匹配。

<html>
<body>
   <h2> Using the <i> Quantifiers </i> in the regular expression </h2>
   <p id="output"> </p>
</body>
   <script>
      let output = document.getElementById("output");
      let message =
      "TutorialsPoint is a great website to learn JavaScript and Typescript.";
      // defining the regular expression pattern
      var pattern = new RegExp("a+", "g");

      // matching the pattern in string
      var script_match1 = message.match(pattern);
      output.innerHTML +=
      "All matches which contain at least one a: " +
      script_match1 +
      "<br/>";

      // Matching with case ignorance
      pattern = new RegExp("^t", "gi");
      script_match1 = message.match(pattern);
      output.innerHTML +=
      "All matches which starts with t: " + script_match1 + "<br/>";
   </script>
</html>

字面量字符

字面量字符 我们可以使用字面量字符来表示正则表达式中的转义字符。

字面量

描述

\0

表示 NULL 字符。

\t

表示制表符


\n

表示换行符。

\v

表示垂直制表符。

\r

示例

用于使用十六进制数 xxxx 指定 Unicode 字符 u。

<html>
<body>
   <h2> Using the <i> Literal characters </i> in the regular expression </h2>
   <p id="output"></p>
   </body>
   <script>
      let output = document.getElementById("output");
      let message =
      "TutorialsPoint is a great website to learn JavaScript and Typescript.";
      // defining the regular expression pattern
      var pattern = new RegExp("\T", "g");

      // matching the pattern in string
      var script_match1 = message.replace(pattern, "\p");
      output.innerHTML +=
      "After replacing the T in the string with p is : <br>" +
      script_match1 +
      "<br/>";
   </script>
</html>

在此示例中,我们使用了“\t”字面量来转义制表符,并将消息字符串中的所有“T”字符替换为“p”。

元字符

描述

元字符

\s

指定空格。

\S

指定非空格。

\w

指定单词字符。

\W

指定非单词字符。

\d

指定十进制数字。

\D

指定非十进制数字。

更新于: 2022-12-29

143 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告