1.什么是正则表达式
正则表达式 是一个对象
功能和字符串一样,都是用来对字符串进行【模式匹配】和【文本检索】与【替换】。
正则表达式能替代字符串去做一些复杂的操作,而且做得比字符串还要漂亮。
正则表达式可以理解成一个super String。
声明正则表达式:
1.通过new运算符声明 new RegExp(“str”, “ig”)
第一个参数 传入的是生成正则表达式的字符串
第二个参数 传入修饰符
var box = new RegExp("box", "ig");
alert(box); ///box/gi
i 忽略大小写 g 全局匹配 m 换行匹配
2.省略new
var box = RegExp("box", "ig");
alert(box); ///box/gi
3.可以通过正则常量赋值
var box = /box/ig;
2.正则表达式的方法
test
格式:正则.test(字符串)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功返回true,否则返回false
exec
格式:正则.exec(字符串)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功,返回匹配成功字符串的数组,
如果匹配失败返回null。
3.在字符串的函数中使用正则
match()
格式:字符串.match(正则)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功,返回匹配成功的字符串的数组,
如果匹配失败返回null。
replace 字符串替换
格式:str.replace(oldStr/正则,newStr);
返回值:替换完成的新字符串。
search
格式:字符串.search(正则);
返回值:查找到的下标
-1 没有找到
split
功能:字符串.split(分割符/正则);
返回值:数组,存放用分割符分割完毕的字符串。
4.元字符
元字符:正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。
单个字符的元字符
. 匹配换行以外的任意字符
[a-z] 限定匹配单个字符的范围
[a-zA-Z0-9_] 限定匹配单个字符的范围是数字、字母、下划线
[^0-9] 限定匹配单个字符的范围,除这个范围外的字符
\w 限定匹配单个字符的范围是数字、字母、下划线
\W ([^a-zA-Z0-9_]) 限定匹配单个字符的范围是非数字、字母、下划线
\d 限定匹配单个字符的范围是数字
\D 限定匹配单个字符的范围是非数字
空白字符
\s 可以匹配一个任意的空白字符
\S 可以匹配一个任意的非空白字符
锚字符
^ 限定行首匹配
$ 限定行尾匹配
【注】如果同时加行首和行尾,那么字符串只能是这个正则。
重复字符(x代表的是单个字符)
x? 匹配1个或者0个x字符
x+ 匹配至少一个x字符
x* 匹配任意个x字符
x{m,n} 匹配最多n个x字符,最少m个x字符
x{m} 匹配m个字符
(abc)+ 用小括号括起来多个字符,那么这多个字符,会被当做一个字符匹配
替代字符 |
google|baidu|bing
可以匹配谷歌、百度和必应中的任意一个
這個世界上沒有天使