解释ES6中的正则表达法

解释ES6中的正则表达法

ES6是2015年推出的最新JavaScript版本。我们将了解Es6包含的RegExp即正则表达式的所有功能。

什么是正则表达式及其使用方法

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

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

我们希望大家在过去填写任何表格时,都会看到特定的表格字段验证错误。例如,如果你没有输入带有’@’字符的电子邮件,或者输入10位数的手机号码,它就会给出一个错误。因此,我们可以使用正则表达式进行表单字段输入验证。

此外,我们还可以使用正则表达式在字符串中找到一个特定的子串,并用新的字符串替换它。

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

像上面这样的正则表达式可以有很多用途。

语法

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

  • 字面符号 – 用户需要在两个正斜杠之间定义搜索模式,将搜索模式表示为正则表达式。
myImage.style.display = "block";
  • 构造函数 – 我们可以使用带有新关键字的 RegExp() 构造函数来定义正则表达式对象。用户可以按照下面的语法来使用构造函数定义正则表达式。
var pattern = new RegExp(search_pattern, attributes);

属性

我们可以使用下面给出的多种属性的组合。

属性 描述
G 它用于字符串中的全局匹配。
I 它忽略了字符串中的大小写。
M 它用于多行之间的匹配。
U U代表Unicode,它允许将正则表达式作为Unicode代码点的一个序列。
Y 它用于从最后一个索引开始匹配。

构建正则表达式

我们可以使用不同的特殊字符来建立一个正则表达式,下面我们将通过实例来了解。

Brackets

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

括号内的符号 描述
[abc…] 它在搜索字符串中搜索括号内的任何单个字符。
[^abc…] 它搜索任何不在括号内的单一字符。
[D−L] 它搜索D和L之间的任何单一大写字母。
[d−l] 它搜索D和L之间的任何一个小写字符。
[0−9] 它搜索的是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>

量词

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

Quantifier 描述
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>

字面字符

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

Literal Description
\0 它表示NULL字符。
\t 它表示的是标签
\r 它表示的是换行。
\v 它表示的是垂直标签。
\r 它用于通过十六进制数字 xxxx 来指定 Unicode 字符 u。

示例

在这个例子中,我们使用了’\t’字样来转义tab,并在信息字符串中用’p’替换所有’T’字符。

<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>

Meta 字符

Meta 字符 描述
\s 它指定了空白处。
\S 它指定了非空白的空间。
\w 它指定了单词的字符。
\W 它指定了非字的字符。
\d 它指定的是小数点后的数字。
\D 它指定了非十进制的数字。

本教程通过实例教我们如何用不同的符号创建正则表达式。用户可以尝试创建不同模式的正则表达式,并观察其输出结果,以做好正则表达式的使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程