正则匹配对象RegExp
概览图
修饰符
用于区分下小写和全局匹配
//i不区分大写和小写
let str='Visit RUNoob test runoob';
let patt1=/runoob/i
str.match(patt1);//RUNoob
//g全局匹配
let patt2=/runoob/ig;
str.match(patt2);//RUNoob,runoob
//m多行匹配,可以跨行匹配
let str1='Visit RUNoob \n test runoob';
let patt3=/runoob/m
patt3.match(str1);//runoob
方括号
查找指定范围内的字符
//[a-z]
let str='Is this all there is ?';
let patt1=/[a-h]/g;
str.match(patt1);//h,a,h,e,e
let patt2=/[^a-h]/g
str.match(patt2);//I,s, ,t,i,s, ,l,l, ,t,r, ,i,s,?
let patt3=/[a|e]/g;
str.match(patt3);//a,e,e
元字符
拥有特殊含义的字符
//.
let str="This so good&%";
let patt1=/g.{1,2}d/g;
str.match(patt1);//
//\w数字或字母以及下划线
let patt2=/\w/g;
str.match(patt2);//T,h,i,s,i,s,s,o,g,o,o,d
量词
let str="Hellooo World! Hello Runoob!"
//n+至少一个字符
let patt1=/o+/g;
str.match(patt1);//ooo,o,o,oo
//n?0个或一个
let patt2=/o?/g;
str.match(patt2);//,,,,o,o,o,,,o,,,,,,,,,,o,,,,,o,o,,,
//n*0个或者是多个
let patt3=/o*/g
str.match(patt3);//,,,,ooo,,,o,,,,,,,,,,o,,,,,oo,,,
//n{2,3}
let patt4=/o{2,3}/g;
str.match()
exec()方法、test()、toString()
exec()用于检索字符串中的正则表达式匹配,返回字符串中匹配的值,否则返回null
test()用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回true,否则返回false.
toString()返回正则表达式的字符串值
let str="Hello world !";
let patt=/Hello/g;
patt.exec(str);//Hello
patt.test(str)//true
let patt1=new RegExp('RUNOOB','g');
patt1.toString();///RUNOOB/g
search()、match()
search()用于检索字符串中指定的子字符串,或检索出与正则表达式相匹配的子字符串。如果没有找到匹配,则返回-1。
match()可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
replace()在字符串中用一些字符串替换另一些字符,或替换一个与正则表达式匹配的子串
split()把字符串分割为字符串数组。
let str="This is a demo";
str.match(/is/g);//is,is
str.search(/is/g);//2
str.replace(/is/g,'ok');//Thok ok a demo