正则表达式
一、什么是正则表达式
正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp、RE正则表达式,就是用某一种模式去匹配一类字符串的公式
二、正则表达式的定义方法
-
显示定义(构造函数)
var 变量名 = new RegExp(‘正则表达式模式’)
-
隐式定义(字面量)
var 变量名 = /正则表达式模式/
举个栗子
var str = new ReExp("\d+") var str = /\d+/ //两种方式等价
三、正则表达式的常用方法
-
test
正则去匹配字符串,如果匹配成功就返回true,匹配失败就返回false语法:
正则.test(字符串)
var str = 'abcdef'
var RE = /b/
alert(RE.test(str))
-
search
正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1语法:
字符串.search(正则)
var str = 'abcdef' var RE = /b/ alert(str.search(RE)) //返回1 var RE1 = /w/ alert(str.search(RE1)) //返回-1
-
match
正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null语法:
字符串.match(正则)
var str = 'aaa23df53' var re = /\d+/g alert(str.match(re)) //23,53
-
replace
正则去 匹配字符串,匹配成功的字符串被新的字符串替换掉语法:
字符串.replace(正则,新字符串)
var str = 'aaa' var re = /a/ str = str.replace(re,'b') alert(str) //baa
四、常用元字符
普通字符就是a-z,0-9这类的常见字符。其中特殊字符又称为“元字符”。
\d
:匹配数字,相当于[0-9]
\D
:匹配非数字,相当于[^0-9]
\w
:匹配字母、数字、汉字或下划线\W
:匹配任意不是字母、数字、汉字或下划线的字符\s
:匹配任意的空白符,如空格,换行符,制表字符\S
:匹配任意不是空白符的字符.
:匹配除了换行符以为的任意字符[...]
:匹配方括号中的所有字符[^...]
:匹配非方括号的所有字符
举个栗子
用正则表达式匹配的是中国的电话号码,以0开头,然后是两个数字,然后是一个连字号“-”,最后 是8个数字。如:028-88888888
let reg = /0\d{2}-d{8}/
五、连接符-范围
[0-9]
:匹配数字,等价于\d[a-z]
:匹配英文小写字母[A-Z]
:匹配英文大写字母:[0-9a-zA-Z]
:匹配所有数字和大小写字母
六、定位符-边界
在正则表达式中,定位符就是限定某些字符出现的位置。
^
限定开始位置的字符$
限定结尾位置的字符\b
限定单词(字)边界的字符\B
限定非单词(字)边界的字符
七、修饰符
一、修饰符
g
: global 全文搜索,不添加,搜索到第一个匹配停止i
: ignore case 忽略大小写,默认大小写敏感m
: multiple lines 多行搜索
二、用法:
let reg = /\bis\b/
let str = 'He is a boy,This is a dog.Where is she?'
str.match(reg)
//正则后加g,匹配所有的
var reg = /\bis\b/g
八、特殊转义符
\f
匹配换页符\n
匹配换行符\r
匹配回车符\t
匹配制表符\v
匹配垂直制表符\\
匹配 \\"
匹配 "\'
匹配 ’