李金帅
能将喜欢的东西留在身边,这就是我努力的意义。

正则

2021-06 JS
Word count: 727 | Reading time: 2min

1. 什么是正则表达式?

正则表达式(Regular Expression)是一种文本模式,包括普通字符(如,a-z,A-Z,0-9等)和特殊字符(称为”元字符”,如:+,?,*等)。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。
许多程序设计语言都支持利用正则表达式进行字符串操作。C#, java, PHP

正则表达式使用场景:一般校验字符串是否满足正则表达式条件,如:登录校验,注册校验,验证邮箱,验证手机,验证密码强度等等。

2. JS中如何定义正则表达式?

两种方式:字面量和RegExp()对象
如:
var reg1 = /[0-9]/; // 字面量定义方式,推荐使用
var reg2 = new RegExp(‘[0-9]’, ‘i’);

RegExp对象及其API参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

3. 正则表达式语法?(重点)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[0-9]匹配0-9之间的单个数字,其中[]表示范围
[a-z]匹配a-z之间的单个字母
[A-Z]匹配A-Z之间的单个字母
+ 匹配1个或多个字符(1次或多次)
? 匹配0个或一个字符(0次、或1次)
* 匹配0个或多个字符(0次、或1次、或多次)
^ 匹配以xxx字符开头,特别注意在[]中使用时表示取反操作。
$ 匹配以xxx字符结尾
{} 表示匹配的字符串的长度范围 {2, 6} 相当:str.length >= 2 && str.length <= 6
() 表示一个整体.
| 表示或者 or

\s 匹配任何空白字符 '',包括空格(按下空格键)、制表符、换页符等等。等价于 [\f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^\f\n\r\t\v]
\w 匹配数字,字母,下划线
\W 匹配非数字,非字母,非下划线
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。


以下的了解:
\ 转义字符 如:\.
\f 匹配一个换页符(了解) PageDown下一页 PageUp上一页
\n 匹配一个换行符 (软换行,自动换行,常用)
\r 匹配一个回车符 (强换行,相当于按下enter键,常用)
\t 匹配一个制表符。(了解,相当于按下tab键)
\v 匹配一个垂直制表符。(了解)
......
各种语法可以组合使用。

详细语法参考文档:
https://www.runoob.com/regexp/regexp-syntax.html

4. 正则表达式的三种模式?(了解)

贪婪模式 * 和 +、懒惰模式 ?、独占模式

https://www.cnblogs.com/study-everyday/p/7426862.html

5. 常用的正则表达式

https://blog.csdn.net/ZYC88888/article/details/98479629
http://c.runoob.com/front-end/854

Author: 李金帅

Link: https://lijinshuai21.github.io/Li_JinShuai_Blog/2021/06/01/%E6%AD%A3%E5%88%99/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
数据类型转换
NextPost >
进程 线程 同步 异步
CATALOG
  1. 1. 1. 什么是正则表达式?
  2. 2. 2. JS中如何定义正则表达式?
  3. 3. 3. 正则表达式语法?(重点)
  4. 4. 4. 正则表达式的三种模式?(了解)
  5. 5. 5. 常用的正则表达式