正则表达式
//用法
1. /d/g
2. new RegExp('/d/','g')
//修饰符
g,i,m
//元字符
1.元字符是在正则表达式中有特殊含义的非字母字符
. * + ? $ ^ | () {} []
,v,
,
,0,f,cX
//字符类
1.元字符[]来构建一个简单的类
2.元字符^创建反向类
[abc] , [^abc]
//范围类
1.[a-z],[1-9]
//预定义类
. [^
]
d [0-9]
D [^0-9]
s [
xOBf
]
S [^
xOBf
]
w [a-zA-Z_0-9]
W [^a-zA-Z_0-9]
//边界
^ $ B
"
@23
@45
@6
".replace(/^@d/gm,'X')
//量词
? 零次或一次
+ 一次或多次
* 零次或多次
{n} 出现n次
{n,m} 出现m到n次
{n,} 至少出现n次
//贪婪模式
'12345678'.replace(/d{3,6}/g,'X')
//匹配最大次
//非贪婪模式
在量词后面加?
'12345678'。replace(/d{3,6}?/g,'X')
//匹配最少次
//分组
()可以达到分组的功能,使量词作用于分组
'a1b2c3d4'.replace(/([a-z]d){3}/g,'X')
//反向引用
'2015-12-25'.replace(/(d{4})-(d{2})-(d{2})/g,'$1$2$3')
//前瞻
正向前瞻exp(?=assert)
负向前瞻exp(?!assert)
'a2*3'.replace(/w(?=d)/g,'x')
//对象属性
//.test()
var reg2 = /w/g
reg2.test('ab')
reg2.lastIndex 从上一次的记录开始匹配
//.exec()
// 没有加g的调用每次从第一次开始搜素,否则从上一次,返回一个结果数组[匹配项,匹配子项]
var reg3 = /d(w)d/;
var ts = '1a2b3c4d5e'
var ret = reg3.exec(ts)
console.log(reg3.lastIndex +
' ' + ret.index + ' ' + ret.toStirng())
//string
'a1b2'.search(/1/g,'a')
var reg3 = /d(w)d/;
var ts = '1a2b3c4d5e'
var ret = ts.match(reg3)
console.log(reg3.lastIndex +
' ' + ret.index + ' ' + ret.toStirng())
'a,b,c,d'.split(',')
'a1b1c1'.replace(//,(匹配字符串,分组,匹配项索引,原字符串)=>{
})