收藏多年的正则表达式笔记大全,绝对是干货!

1、常见正则
(1)检查邮政编码//共 6 位数字,第一位不能为 0
/^[1-9]d{5}$/
(2)检查文件压缩包 //xxx.zipxxx.gzxxx.rar
/^w+.(zip|gz|rar)$/
(3)删除多余空格 //
str.replace(/s+/,'');
(4)删除首尾空格
str.replace(/^s+/,''); //去除开头的空格
str.replace(/s+$/,''); // 去除结尾的空格
(5)//删除所有的空格
str.replace(/s/g,'');
(6)//删除前后的空格
str.replace((^s+)|(s+$),'')
(7)电子邮件( xxxxx @ xxxx(.xxxx)+)
/^w+@w+(.w+)+$/
如: 770107@qq.com; 770107@qq.com.cn
(8)手机号(1开头任意数字) 1(3|5|7|8|4)d{9}
/^1d{10}$/
(9)身份证
/^d{17}(d|X)$/
422422 19660101 5810
421087 19890101 121X
^[1-9]d{5}[19|20]d{2}d{7}(d|X)$
(10)日期 (合法日期格式:xxxx-xx-xx或 xxxx/xx/xx或xxxx.xx.xx)
/^d{4}[-/.]d{2}[-/.]d{2}$/
(11)只能输入中文
str.replace(/[^u4e00-u9fa5]/g,'');
(12)账户名只能使用数字字母下划线,且数字不能开头,长度在6-15之间
/^[a-zA-Z_]w{5,14}$/
(13)验证IP
(xxx.)xxx.xxx.xxx|
254.245.255.255
240.196.19.5
/^((25[0-5]|2[0-4]d|1d{2}|[1-9]?d).){3}(25[0-5]|2[0-4]d|1d{2}|[1-9]?d)$/
(14)汉字在正则中表示为[u4e00-u9fa5]
(15)字母和数字表示为A-Za-z0-9
(16)因此邮件名称部分的正则表达式整理如下: 
电子邮件( xxxxx @ xxxx(.xxxx)+)
/^w+@w+(.w+)+$/
如: 770107@qq.com; 770107@qq.com.cn
(17)手机号(1开头任意数字) 
/^1(3|5|7|8|4|6|9)d{9}$/
 
2、正则表达式的特殊字符
w 匹配一个可以组成单词(变量)的字符(包括字母,数字,下划线)
如[w]匹配“$5.98”中的5,等价于[a-zA-Z0-9_] 。
W 匹配一个不可以组成单词的字符
如[W]匹配"$5.98"中的$,等于[^a-zA-Z0-9_]。
匹配一个换行符
匹配一个回车符
匹配一个制表符
v 匹配一个重直制表符
s 匹配一个空白字符,包括 , ,f, ,v等
S 匹配一个非空白字符,等于/[^ f v]/
 匹配一个单词的边界 (单词是以空格分割的)
/m/ 匹配 “ moon " 中的 'm';
/oon/ 匹配 “ moon " 中的 'oon',因为 'oon' 位于字符串的末端,后面没有单词字符;
B 匹配一个单词的非边界
 
3、直接量字符(转义字符)
f 换页符
换行符
回车
制表符
v 垂直制表符
/ 一个 / 直接量
\ 一个 直接量
. 一个 . 直接量
* 一个 * 直接量
+ 一个 + 直接量
? 一个 ? 直接量
| 一个 | 直接量
( 一个 ( 直接量
) 一个 ) 直接量
[ 一个 [ 直接量
] 一个 ] 直接量
{ 一个 { 直接量
} 一个 } 直接量
 
4、方括号
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。 [1-9]d+
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
 
5、元字符
. 查找单个字符,除了换行和行结束符,等价于[^ ]
w 匹配一个可以组成单词(变量)的字符(包括字符,数字,下划线), 如[w]匹配“$5.98”中的5,等价于[a-zA-Z0-9_] 。
W 查找非单词字符。匹配一个不可以组成单词的字符,如[W]匹配"$5.98"中的$,等于[^a-zA-Z0-9_]。
d 匹配一个数字字符,/d/ 等价于 /[0-9]/
D 匹配一个非数字字符,/D/ 等价于 /[^0-9]/
s 匹配一个空白字符,包括 , ,f, ,v等
S 匹配一个非空白字符,等于/[^ f v]/
 匹配单词边界。
B 匹配非单词边界。
查找 NUL 字符。
查找换行符。
f 查找换页符。
查找回车符。
查找制表符。
v 查找垂直制表符。
xxx 查找以八进制数 xxx 规定的字符。
xdd 查找以十六进制数 dd 规定的字符。
uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
 
6、量词
c{n} 匹配包含 n 个 c 的序列的字符串。
c{m,n} 匹配包含 m 到 n 个 c 的序列的字符串。
c{n,} 匹配包含至少 n 个 c 的序列的字符串。
c+ 匹配任何包含至少一个 c 的字符串,等价于c{1,} 。
c* 匹配任何包含零个或多个 c 的字符串,等价于c{0,}
c? 匹配任何包含零个或一个 c 的字符串,等价于 c{0, 1}
c$ 匹配任何结尾为 c 的字符串。
^c 匹配任何开头为 c 的字符串。
?=c 匹配任何其后紧接指定字符串 c 的字符串。
对其后紧跟 "all" 的 "is" 进行全局搜索.
var str="Is this all there is"; var patt1=/is(?= all)/g;
?!c 匹配任何其后没有紧接指定字符串 c 的字符串。
对其后没有紧跟 "all" 的 "is" 进行全局搜索:
var str="Is this all there is"; var patt1=/is(?! all)/gi;
 
7、修饰符
i   执行对大小写不敏感的匹配。
g   执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m   执行多行匹配。
 
原文地址:https://www.cnblogs.com/lishixiang-007/p/11282720.html