概念
正则表达式:又称为规则表达式
主要式由一些特定字符所组成的规则,专门用来规范字符串使用
定义
//构造函数
var reg=new RegExp(过滤规则,修饰符)
//字面量
var reg=/具体的规则/
组成部分
具体规则的组成部分分为2部分:
字符:表示字符串组成部分的字符
普通字符:普通字符串中的字符
元字符:具有特殊含义的特殊字符
修饰符:修饰字符的规则
(1)元字符:
.:匹配除换行符以外的任意字符
\:转义符,把有意义的符号转为没有意义,没有意义的字符转为有意义
\s:匹配空白字符
\S:匹配非空白字符
\d:匹配0-9的数字
\D:匹配非0-9的数字
\w:匹配数字、字母、下划线
\W:匹配非数字、字母、下划线
\b:匹配字符串中边缘(换行和空格)
[]:匹配[]中的任意一个字符
(2)修饰符:
* :表示前一个字符出现0到多次
+:表示前一个字符出现1到多次
?:表示前一个字符出现0到1次
{n}:表示前一个字符出现n次
{n,}表示前一个字符出现n到多次
{n,m}:表示前一个字符出现n到m次
(3)边界符:
^:通常放在开头,表示字符串必须以他后面的字符开头
$:通常放结尾,表示字符串必须以他前面的字符结尾
注意:在正则表达式中,如果有^$边界符时,采用的是逻辑运算符&&来进行判断;如果没有^$边界符时,采用的是逻辑运算符||来进行判断;
1)特殊符号:
():限定一组字符,结合(或)运算符使用,可以限定多组字符
[ ]:字符集合,结合-(范围),0-9表示所有数字
[^]:反字符集合,匹配[ ]以外的字符
-:范围
|:或
[\u4e00-\u9fa5]:匹配任意一个中文汉字
(5)模式修正符(标识符):
i:不区分大小匹配
g:全局匹配
m:多行匹配
使用方法
验证字符串的方法
//test方法返回布尔值,表示字符串是否满足规则。
正则.test(被验证的字符串)
//从字符串中查找满足规则部分在字符串中的下标,找到就返回下标,找不到返回-1。
字符串.search(正则表达式)
提取字符串的方法
//exec返回数组,数组的第一个元素是满足规则的部分。如果字符串中没有满足规则的,则返回null
正则.exec(字符串)
//返回值跟exec一样
字符串.match(正则表达式)
替换字符串的方法
//eplace方法可以将满足规则的部分替换成新的部分
字符串.replace(正则表达式, 新的部分)
将字符串转为对象
//字符串分割方法
var str = "width:200px;height:200px;margin:10px;padding:50px"
var obj = {}
var arr=str.split(";")
for(var i=0;i<arr.length;i++){
var brr=arr[i].split(":")
obj[brr[0]]=brr[1]
}
console.log(obj)
//正则方法配合exec()
var str = "width:200px;height:200px;margin:10px;padding:50px"
var reg = /([^:;]+):([^;]+)/g
var obj = {}
var arr = reg.exec(str)
while (arr != null) {
obj[arr[1]] = arr[2]
arr = reg.exec(str)
if (!arr) {
break
}
}
console.log(obj)