JavaScript正则进阶之路——活学妙用奇淫正则表达式

正则表达式是一种强大的文本处理工具,它可以快速地匹配和替换字符串。在前端开发中,正则表达式经常用来验证输入数据、提取URL、过滤HTML标签等。

基础知识回顾

在深入讨论正则表达式的高级用法前,我们先来回顾一下正则表达式的基本元素。

正则表达式由两种基本字符类型组成:字面量字符元字符。其中,字面量字符表示它本身,而元字符则表示一类字符或者操作符号。以下是一些常见的元字符:

  • . : 匹配任意一个字符(除了换行符)
  • \d : 匹配任意一个数字
  • \w : 匹配任意一个字母、数字或下划线
  • \s : 匹配任意一个空格符
  • + : 匹配前面的字符出现至少一次
  • * : 匹配前面的字符出现任意次(包括0次)
  • ? : 匹配前面的字符出现0次或1次
  • | : 或运算符
  • () : 捕获分组

除此之外,还有一些更高级的元字符,例如零宽断言、负向零宽断言、反向引用等。这些元字符可以让我们更加方便地进行复杂的匹配操作。

实战演练

验证手机号码

首先,我们来看一个验证手机号码的例子。手机号码是一种十分常见的数据类型,因此我们经常需要对其进行格式校验。下面是一段正则表达式代码:

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

这个正则表达式的含义是:以数字1开头,第二位为3、4、5、7、8、9中的一个,后面跟着9个数字,结束符号为字符串结尾($)。如果输入的字符串符合这个模式,那么就表示这是一个合法的手机号码。

我们可以通过 test 方法来测试该正则表达式是否能够匹配手机号码:

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

提取URL参数

接下来,我们来看一个提取URL参数的例子。在前端开发中,我们通常需要从URL中提取出某些参数,以便于后续的操作。下面是一段正则表达式代码:

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

这个正则表达式的含义是:匹配所有形如 key=value 的字符串,其中 keyvalue 都由字母、数字或下划线组成。

假设我们有以下URL:

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

我们可以通过 matchAll 方法来提取出所有的参数:

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

输出结果如下所示:

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

过滤HTML标签

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/4320