正则表达式:使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
语法
/正则表达式主体/修饰符(可选)
正则表达式修饰符
| 修饰符 | 描述 |
| i | 忽略大小写 |
| g |
全局搜索,不会在匹配上第一次的时候就停止匹配 |
| m | 执行多行匹配 |
var a = /H/i var b = /H/ var c = 'hgdyjasggdjhsskhds' console.log(a.test(c)) // true console.log(b.test(c)) // false var d = /h/ var e = /h/g console.log(c.replace(d,'QQ')) // QQgdyjasggdjhsskhds console.log(c.replace(e,'QQ')) // QQgdyjasggdjQQsskQQds
表示字符
| 字符 | 功能 |
| . | 匹配任意字符(除了\n) |
| [] | 匹配[]中列举的字符 |
| \d | 匹配数字,0-9 |
| \D | 匹配非数字 |
| \s | 匹配空白,即空格 tab键 |
| \S | 匹配非空白 |
| \w | 匹配单词字符,即a-z,A-Z,0-9,_ |
| \W | 匹非飞单词字符 |
var str = "ai shang dui fang guo hou jiu ku le & * % ^ ¥ # @ !$" var a = /./g console.log(a.test(str)) // true console.log(str.replace(a, 'q')) // qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq var b = /[&*]/g console.log(str.replace(b, ' ')) // ai shang dui fang guo hou jiu ku le % ^ ¥ # @ !$ var str2 = "1234" var str3 = " 12345 " console.log(/\d/g.test(str2)) // true console.log(/\D/.test(str2)) // false console.log(/\D/.test(str3)) // true console.log(/\s/.test(str3)) // true console.log(/\S/.test(" ")) // false console.log(/\w/.test("123aD_")) // true console.log(/\W/.test("123aD_")) // false console.log('*********************') console.log(/\w/.test("*&")) // false console.log(/\W/.test("*&")) // true
表示次数
| 字符 | 功能 |
| * | 匹配前一个字符0次或无限次,即可有可无 |
| + | 匹配前一个字符1次或无限次,即至少出现1次 |
| ? | 匹配前一个字符0次或1次,即要么出现一次,要么没有 |
| {m} | 匹配前一个字符出现m次 |
| {m,} | 匹配前一个字符至少出现m次 |
| {m,n} | 匹配前一个字符出现m到n次 |
表示边界
| 字符 | 功能 |
| $ | 以前面的一个字符结尾 |
| ^ | 以后面的一个字符开头 |
| \b | 匹配一个单词的边界 |
| \B | 匹配非单词边界 |
匹配分组
| 字符 | 功能 |
| | | 匹配左右两边任意一个字符 |
| () | 将()中的字符作为一个整体 |
| \. | 将 . 转义不在是匹配任意字符 |
字符串方法
search():用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
var str = "zhangsan"
console.log(str.search('a')) // 2
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "zhangsan"
console.log(str.replace('a', 'A')) // zhAngsan
console.log(str.replace(/a/, 'A')) // zhAngsan
match():用于检测一个字符串中是否有某个模式或者某个字符串,如果匹配成功则返回一个数组否则返回null
var str = "zhangsan" var m = str.match('a') console.log(m) // [ 'a', index: 2, input: 'zhangsan' ] console.log(m[0]) // a console.log(m[1]) // undefind console.log(m.index) // 2
split():用来把字符串用某种某种模式或者以某些字符拆分,匹配成功则返回一个数组否则将整个字符串放到数组中返回
var str = "zhang san" var ss1 = str.split(' ') var ss2 = str.split(/\s/) var ss3 = str.split('l') console.log(ss1) // [ 'zhang', 'san' ] console.log(ss2) // [ 'zhang', 'san' ] console.log(ss2 instanceof Array) // true console.log(ss3) // [ 'zhang san' ]
RegExp 对象
test():是一个正则表达式方法,用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec():方法是一个正则表达式方法,用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
浙公网安备 33010602011771号