1. exec: RegExp方法,在字符串中执行查找匹配,返回一个数组,未匹配返回null
2. test: 在字符串中测试是否匹配的RegExp方法,返回true或false
3. match: 在字符串中执行查找匹配的String方法,返回一个数组或者未匹配到返回null
4. search: 在字符串中测试匹配的String方法,返回匹配到的位置索引,或在失败时返回-1
5. replace: 在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串
6. split: 使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法
定义方式
1、构造函数:
new RegExp(pattern, attributes)
pattern: //表达式内容,即要对其正则的定义表达式
attributes://g:全局匹配 i:不区分大小写 m:执行多行匹配
2、文本定义:
ex: let reg = /abc/g
普通字符
1、[ABC] 匹配 [ ] 中的所有字符; [^ABc] 匹配除了 [ ] 中的字符,单个 ^ 标识匹配输入字符串的开始位置,匹配 ^ 本身,使用转义 ^; [A-Z] 匹配所有大写字母,[a-z] 匹配所有小写字母
ex:
let str = "Abcdef"
let patt1 = /[cde]/g
let patt2 = /[^cde]/g
let patt3 = /[A-Z]/g
let patt4 = /[a-z]/g
console.log(str.match(patt1), str.match(patt2))
// (c,d,e) (a,b,f) (A) (b,c,d,e,f)
2、.([^\n\r])匹配除换行符(\n、\r)之外的任何单个字符
ex:
let str1 = "abc def"
let patt5 = /./g
console.log(str1.match(patt5))
// a,b,c, ,e,f
3、[\s\S] 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行
let str = "google runoob taobao\nRUnoob\ntaobao";
let patt1 = /[\s\S]/g;
console.log(str.match(patt1)) //var str = "google runoob taobao\nRUnoob\ntaobao";
let patt2 = /[\s]/g;
console.log(str.replace(patt1, '6') // google6runoob6taobao6RUnoob6taobao
4、 \w ([A-Za-z0-9]) 匹配字母、数字、下划线
var str = "Good Hello 123haha";
var patt1 = /\w/g;
console.log(str.match(patt1)); // G,o,o,d,H,e,l,l,1,2,3,h,a,h,a
5、
\n: 匹配换行符 \r:匹配回车符 $: 匹配输入字符串的结束位置
图片:
let reg = /(< img|<img).*?(?:>|\/>)/gim //匹配所有图片标签
let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i // 匹配图片中的src
使用:变量.match(reg)
文本:
var sc = 变量.replace(/<div\b[^<]*(?:(?!<\/div>)<[^<]*)*<\/div>/gi, '')
var reg2 = /(<\/?p.*?>)/gi
return sc.replace(reg2, '')