正则常用的知识点总结

. 任意字符(除换行符以为:\n,\r,\u2028 or \u2029)
\d 数字0-9
\D 非\d,既不是数字0-9的字符
\w 数字0-9,或字母a-z及A-Z(大写),或者下划线
\W 非\w
\s 空格符、TAB、换页符、换行符
\S 非\s
\t\r\n\f tab回车 换行 垂直制表符 换页符
[...] 字符范围 [a-z][0-9][A-Z0-9a-z_]
[^...] 字符范围以外 [^a-z][^abc]
^ 首行 ^HI
$ 行尾 test$
\b 零宽单词边界 \bno
\B 非\b
特殊符转义:
/\^abc/.test('^abc');
分组:
(x)分组,并记录匹配到的字符串 /(abc)/
\n 表示使用分组符(x)匹配到字符串 /(abc)\1/.test('abcabc'); 重复
(?:x) 仅分组 /(?:abc)(def)\1/.test('abcdef')
x* x+ 重复次数>=0 重复次数>0 贪婪算法 abc*将匹配ab、abc、 abccc abc+ 将匹配abc、abccc
x*? x+? 同上相反(匹配尽可能少) abc*? 将匹配ab, abc+?将匹配abc
x? 出现0或1次
x{n} x{n,}x{n,m} 重复n次,重复>=n次 ,重复次数x满足:n<=x<=m
三个Flag
global:全局
igmoreCase:不区分大小写
multiline:有分行跨行的时候需要跨行检索
例子:/abc/gim.test("ABC");//true
RegExp("abc","mgi")
对象方法:
/abc/.exec("abcdef");//"abc"
/abc/.test("abcde");//true
/abc/.toString();//"/abc/"
var reg = /abc/;
reg.compile("def"); //改变规则和属性
reg.test("def");//true
string类型与正则相关的方法
'abcabcef'.search(/(abc)\1/);//索引 0
'aabbbbbcc'.replace(/b+?/,'1');//aa1bbbcc
'aabbbbcc'.match(/b+/);//["bbbb"]
'aabbbbbccbbaa'.match(/b+/g);//["bbbb","bb"]
'aabbbbccbbaa'.split(/b+/);//["aa","cc","aa"]

猜你喜欢

转载自www.cnblogs.com/zj911005/p/9373074.html