俗语说的好 “好记性,不如烂笔头”,所以思来想去还是把这篇博客完成吧!本篇主要介绍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}\$/ |
😴困了,待续…