一:
正则:RegExp
概念:用来检验字符串的规则
如何使用: Var reg=/ / var reg=new RegExp()最后的本质都是一个实例对象。
方法:
test()匹配的方法 exec()捕获的方法
二:修饰符:
i (忽略大小写) m()代表多行匹配 g()代表全局匹配
三:正则的方括号:
【abc】 代表查找方括号中的任何字符
【^abc】代表查找任何一个不在方括号之间的字符
【0-9】查找0到9之间的数字
【a-z】查找任何小写a到小写z的字符
【A-Z】查找任何大写A到大写Z的字符
(red|blue|green)
元字符:
.代表单个字符
w 代表单词字符(数字,字母,下划线)
W代表非单词字符
d代表数字
D代表非数字
s代表空白字符
S代表非空白字符
代表单词边界
B代表非单词边界
量词:
1. n+代表至少1个n的字符
2.n*代表0个或多个n
3.n?包含0个或1个n
4.N{X},包含x个n
5. N{x,} 包含至少x个nN{x,y}
6.N{x,y}包含大于等于x个小于等于y个n
7.N$ 包含以n结尾的字符串^n包含以n开头的字符串
8.^n包含以n开头的字符串
9.?=n 指定字符串后面紧跟的n的字符串
四:正则的理解
(1) 正则的懒惰性
每一次在exec()中捕获的时候,只捕获一次匹配的内容,而不往下捕获了。我们把这叫正则的懒惰性,每一次捕获的开始位置都是从0开始
var reg/d+/;
var st="hu1314miao521"
console.log(reg.exec(st))
解决正则的懒惰性:
加修饰符g(全局匹配)
(2).正则的贪婪性:每一次匹配都是按照最长的出结果,我们把这种功能叫正则的贪婪性。
var reg=/d+/;
var st=“hello2345”
console.log(reg.exec(st))
(3)正则的实例对象reg上有一个lastindex的属性 他是正则捕获的起始位置
var reg=/d+/;
var st=“miao0110”
console.log(reg.exec(st))
在元字符量词后面加?
var reg=/d+?/g;
var st="hu01101201"
console.log(st.match(reg))
五:while语句:
var i=12; var n=12;
var sum=null var sun=null
while(i<10){ do{sun=sun+n n++;}
sum=sum+i while(n<11);
} console.log(sun)先执行,后判断
console.log(sum)先判断后执行
六:分组捕获 正则带()在数组的个数是从左往右
var reg=/(a)(b)/就相当于大正则里面带了两个小正则
第一组是(a)第二组是(b)
分组捕获的作用
1.改变优先级
2.分组引用 1,2
2代表和第二个分组出现一模一样的内容,1代表和第一个分组出现一模一样的内容
var reg=/(w)1(w)2/
var st=“ssdd”
var s=reg.test(st)
console.log(s)
Reg 中的规则是第一个是一个分组,且是一个单词字符 第二个是个分组引用要求和第一组一模一样,第三个是第二个分组,且是一个单词字符,第四个是一个分组引用,要求和第二组一模一样。
3.分组捕获
分组的捕获前提是正则存在分组,不仅把大正则的内容捕获到,把小正则的内容也捕获到。
var reg=/(a)(?:b)/
var st=“acsd”
console.log(reg.exec(st))