俗语说的好 “好记性,不如烂笔头”,所以思来想去还是把这篇博客完成吧!本篇主要介绍javascript的正则表达式,ok 闲话少说,下面就直接开始,GO GO GO …
正则表达式语法
创建正则表达式有两种表达方式,一种就是非常规范的 new 方式,另一种就是Perl风格的表达式。说不上谁好谁坏,各有各的优缺点。 就看您的喜好了🤔
-
new RegExp(pattern,option);1
2
3
4
5
6
7pattern: 字符串,指定了正则表达式的模式用于匹配字符串
option: 可选值,主要有 g、i、 m
============
g: 全局匹配
i: 忽略大小写
m: 多行匹配
============一眼看上去很容易理解,构造一个新的实例对象,按照我们正常的思路创建了一个正则表达式。它返回一个新的 RegExp 对象,具有指定的模式和标志,如下:
1
var reg = new RegExp(’\\d{2}’,’g’);
可
看而知:
优点: 容易理解
缺点: 😷(机智如我)
\d”)必须要添加转义字符 “\”
-
perl风格表示:1
/pattern/option #没错,就这么多
再次可
看而知:
优点: 写起来非常简单
缺点: 😵 (已瞎)
修饰符
| option | 概述 |
|---|---|
| g | 全局匹配 (global) |
| i | 匹配时忽略大小写 (ignoreCase) |
| m | 多行匹配 (multiline) |
中括号[ ]
| 表达式 | 概述 |
|---|---|
| [asd] | 匹配中括号中的任意字符 |
| [^asd] | 匹配除了中括号中的任意字符 |
| 指定范围 | |
| [a-z0-9] | 匹配a到z,0到9的任意字符 |
| 分块匹配 | |
| (abc|def|ghi) | 匹配指定的选项 |
元字符
| 元字符 | 概述 |
|---|---|
| . | 匹配单个字符,不包括换行和行结束符 |
| \d | 匹配数字 |
| \D | 匹配非数字字符 |
| \w | 匹配单词字符,a-z0-9A-Z以及下划线 |
| \w | 匹配非单词字符 |
| \s | 匹配空白字符,空格符,制表符,回车符,换行符,垂直换行符, 换页符 |
| \S | 匹配非空白字符 |
| \b | 匹配单词边界,单词开头或结尾 |
| \B | 匹配非单词边界 |
| \0 | 匹配null字符 |
| \n | 匹配换行符 |
| \f | 匹配换页符 |
| \r | 匹配回车符 |
| \t | 匹配制表符 |
| \v | 匹配垂直制表符 |
| \xxx | 八进制 |
| \xdd | 16进制 |
| \uxxxx | 16进制规定的Unicode字符 |
量词
| 量词 | 概述 |
|---|---|
| + | 匹配至少一个[1,+∞] |
| * | 匹配零个或多个[0,+∞] |
| ? | 匹配零个或一个[0,1] |
| {n} | 匹配n个的序列字符串 |
| {n,m} | 匹配n个的序列字符,最多匹配m次 |
| {n,} | 匹配至少n个序列字符串 |
| n$ | 匹配任何n字符结尾 |
| ^n | 匹配任何n字符开头的字符 |
| ?=n | 匹配任何其后紧接指定字符串n的字符串 |
| ?!=n | 匹配任何其后没有紧接指定字符串n的字符 |
regexp方法
| 方法 | 概述 |
|---|---|
compile |
编译正则表达式 |
exec |
检索指定值返回值及其位置 |
test |
检索指定值,返回TRUE或FALSE |
string支持正则的方法
| 方法 | 概述 |
|---|---|
search |
检索正则表达式匹配的值 |
match |
找到一个或多个正则表达式匹配 |
replace |
替换与正则表达式匹配的字符串 |
split |
分割字符串为数组 |
示例展示
| 方法 | 概述 |
|---|---|
| 手机号码匹配 | /^1[34578]\d{9}\$/ 或 /^1(3|4|5|7|8)\d{9}\$/ |
😴困了,待续…