1.创建正则表达式
a. var reg =new RegRep(‘aa’,‘ig’);
console.log(reg,test(str));
b.var reg=/a/gi;
2. | 或者[]匹配 或
[]内的^表示除了
[abc]
[^abc] 除了有a,b,c 的元素都可以
[0-9]
[a-z]
[A-Z]
[A-z]
3 量词{}
{n} n个
{m,n} m~n区间个
{n,} n个 以上
4. * +?
n* >=0个n
n+ >=1个n
n? 0~1个n
5. . /w /d /
6 ^$
^a 以a开头
a$ 以a结尾
7.支持正则的字符串方法
split()默认全局匹配
search() 默认只有一个,即使全局匹配也无效
-
split 在正则表达中可以结合\w,\d等分割成新的数组
-
search在正则表达中可以找到字符的下标(只能找到1个)类似于indexOf
-
match 在正则表达中找到要找的字符的值,可以全局匹配
-
replace在正则表达中替换字符串的某类值
-
01match(参数)
参数形式
1.字符串
返回第一个满足条件的子字符串,放到数组中
2.正则表达式对象
返回的也是一个数组,或者是null
根据字符串或者正则表达式,提取复合条件的内容,并且放到数组中,如果没有,则返回null
如果不加g,只会把第一个匹配的内容返回,加g就返回所有的匹配内容 -
02 exec(字符串)
返回值
数组或者null如果有内容,则返回一个数组,数组中只有一个元素,哪怕正则中有g,也只有一个元素
加g和不加g的区别
当加g的时候,如果再次运行exec()函数,就会在第一个满足条件的内容后面,继续往后执行,不会再从下标0开始执行
如果不加g,再次运行还会从下标0开始执行 -
03 replace(参数1,参数2) 替换
参数1:正则表达式或者是字符串,表示要被替换的内容,如果是字符串则只能替换一个
参数2:字符串或者是函数,表示替换以后的内容,也就是用什么内容替换参数1
如果参数2为函数,该函数必须有返回值返回值是替换之后的字符串,原字符串不变
-
search(参数)
参数可以为字符串,也可以为正则表达式对象,
返回值
如果匹配到满足条件的内容,则返回该内容的下标,否则返回-1
加不加g,都是返回第一个找到的字符的下标
indexOf和search的区别
1.search比indexOf更好用,ie低版本也支持
2.search可以结合正则使用,功能更加强大
-
m属性:
需要结合^ $一起使用
作用是:影响对行头和行尾的解释,如果没有m的话,^ $指的就是整个字符串的开头和结尾,换行也不影响,当加上m的时候,指的是每一个行字符串的开头和结尾 -
转义字符
把元字符专化为普通字符
元字符->普通字符 => \元字符
- . $ ^ {} + - / [ ] ( )
8.正则表达式分组
(需要捕获的内容)+\num (匹配 num,此处的 num 是一个正整数 这是对已保存的匹配项的引用)
ex 获取所有重复的字符
str.match(/(.)\1+ /g)(给至少1个以上具有单个字符的连续重复字符分组)