RegExp 的使用
正则表达式
//用法
1. /\d/g
2. new RegExp('/\d/','g')
//修饰符
g,i,m
//元字符
1.元字符是在正则表达式中有特殊含义的非字母字符
. * + ? $ ^ | \ () {} []
\t,\v,\n,\r,\0,\f,\cX
//字符类
1.元字符[]来构建一个简单的类
2.元字符^创建反向类
[abc] , [^abc]
//范围类
1.[a-z],[1-9]
//预定义类
. [^\r\n]
\d [0-9]
\D [^0-9]
\s [\t\n\xOB\f\r]
\S [^\t\n\xOB\f\r]
\w [a-zA-Z_0-9]
\W [^a-zA-Z_0-9]
//边界
^ $ \b \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 +
'\t' + ret.index + '\t' + 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 +
'\t' + ret.index + '\t' + ret.toStirng())
'a,b,c,d'.split(',')
'a1b1c1'.replace(//,(匹配字符串,分组,匹配项索引,原字符串)=>{
})
开心每一天,希望做自己的想做的事!