重温正则

105 阅读2分钟

作为前端开发,正则也算是要掌握的基本技能之一。但对于大多数开发人员来说,正则在业务开发的过程中出现的频率还是比较低的,或者说有人直接选择其他字符串API处理。其实正则表达式在处理字符串的效率上还是优字符串API的。

正则表达式概述

正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。

正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。

其他语言也会使用正则表达式,本阶段我们主要是利用JavaScript 正则表达式完成表单验证。

正则表达式的特点

  1. 灵活性、逻辑性和功能性非常的强。
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。

正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。

在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"testing123"等字符串,但是不能匹配"Testing"。

要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。

1 表达式字符串

表达式字符串

2 特殊字符

特殊字符

3 限定字符

限定字符

4 零宽断言

零宽断言

5 贪婪匹配与惰性匹配

贪婪匹配与惰性匹配

6 正则表达式使用

正则表达式使用

7 构造函数 - RegExp

构造函数 - RegExp

7.1 test

test

7.2 search

search

7.3 match

match

7.4 matchAll

matchAll

7.5 split

split

7.6 replace

repalce

7.7 exec

exec

8 反向引用

反向引用

例子一

匹配HTML

例子二

匹配URL