正则表达式

正则表达式


//用法
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(//,(匹配字符串,分组,匹配项索引,原字符串)=>{
    
})
开心每一天,希望做自己的想做的事!
原文地址:https://www.cnblogs.com/niujianlong/p/11670975.html