| // 字符类var reg = /[abc]/ //表示一类特征
 var reg2= /[^abc]/ //非reg
 
 // 范围类
 var reg3 = /[a-zA-Z]/
 
 // 预定义类(^在[]里面是取反)
 // \. => [^\r\n]  除了换行和回车之外的字符
 // \d => [0-9]    数字
 // \D => [^0-9]   非数字
 // \s => [\t\n\x0B\f\r] 空白
 // \S => [^\t\n\x0B\f\r]  非空白
 // \w => [a-zA-Z_0-9]   字母数字下划线
 // \W => [^a-zA-Z_0-9]
 
 // 边界
 // ^ 开头
 // & 结尾
 // \b 单词边界
 // \B 非单词边界
 
 
 
 // 量词
 // ? 0次或者1次
 // + 出现1次或者多次
 // * 任意次
 // {n} 出现n次
 // {n,m} n 到 m次
 // {n,}至少n次
 
 // 贪婪模式(默认)
 12345678.replace(/\d{3,6}/g,'X'); // X78
 
 // 非贪婪模式
 12345678.replace(/\d{3,6}?/g,'X'); // XX78
 
 // 分组
 var reg4 = /('thinkerchan'){3}/
 
 // 或
 var reg5 = /(a|b)/;
 
 // 反向引用
 // 2015-12-25 -> 12/25/2015
 '2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1') // (变量) 要用括号阔起来
 
 // 忽略分组
 '2015-12-25'.replace(/(?:\d{4})-(\d{2})-(\d{2})/g,'$1/$2')  // 12/25 , ?:就跳过了这个(\d{4})分组
 
 // 前瞻, 正则表达式从头到尾解析, 文本尾部叫做"前", 文本头部叫做"后"
 'a2*3'.replace(/\w(?=\d)/g,'X') // X2*3  前瞻部分只做参考
 
 'a2*3'.replace(/\w(?!\d)/g,'X') //aX*X
 // 后顾(JS不支持)
 
 // JS对象属性  (修饰符 i,g,m)
 var reg6 = /\w/;
 console.log(reg6.source)  // 正则本身
 
 // 以下三个默认值 g,m,i都为false, 都是只读的属性
 console.log(reg6.global)  // false
 console.log(reg6.multiline) //false
 console.log(reg6.ignoreCase)  //false
 
 // test和exec //略
 
 var reg6 = /\w/g
 reg6.test('ab') //true
 reg6.test('ab') //true
 reg6.test('ab') //false  这是laseIndex属性影响的
 
 // 字符串对象方法
 'abc'.search('a') // 0 , 不存在就 -1
 
 
 | 
访客评论