正则
- 数据类型:
- 基本: string number boolean null undefined
- 引用类型: array object regExp function
- 创建正则
字面量创建 正则由匹配的字符和修饰符组成 var reg = /123/ig; new RegExp方式创建 var reg1 = new RegExp('123','ig') var s = 'abc'; var reg3 = new RegExp(s, 'i'); console.log(reg3); 修饰符 i: 忽略大小写 g : 全局匹配 常用的元字符 - d 0-9数字 - D 非数字 - w 数字、字母(大小写)、下划线 - W 除了数字、字母(大小写)、下划线以外的任意字符 - s 匹配空格或空白字符 - S 除了空白以外的字符 - . 除了换行的任意字符 - . 点本身 - 边界 单词的两边和字符串的开头和结尾都是边界 - ^ 开始 - $ 结尾
数量 - * 0-多次 - ? 0-1次 - + 1-多次 - {n} n次 - {n,} 至少n次 - {n,m} n-m次
或者 - (a|b|c) a,b,c中的一个字符 - [abc] a,b,c中的一个字符 - (abc|xyz|opq) abc或者xyz或者opq中的一组 - [a-z] 匹配小写字母中的一个 - [^a-z] 除了小写字母中以外的任意字符
- 正则相关方法
regExp1.test(string) // true、false regExp2.exec(string); //用正则匹配字符串中对应的字符 var str = 'welcome to ujiuye!' var reg = /e/g; console.log(reg.lastIndex); //0 下一次匹配的开始位置 reg.lastIndex = 2; //设置匹配的开始位置 var r = reg.exec(str); console.log(r); //6 console.log(reg.lastIndex); //7 r = reg.exec(str); console.log(r); //16 r = reg.exec(str); console.log(r); //null
- 字符串方法(正则相关):
string.match(reg) ; 匹配字符串中符合正则表达式的字符 var str = 'welcome to ujiu-ye!' var reg = /e/g; var r = str.match(reg); //如果正则没有修饰符g ,和调用一次exec结果一样 console.log(r); //['e','e','e'] //如果有修饰符,就是把所有的匹配到的字符放在数组中返回 string.split(/[- ,]/); 同时用多个分割符分割字符串 string.replace(/123/g,''); 全局替换 string.replace(/(123)/g,'$1') 使用分组替换 string.search(reg); 返回第一次匹配的字符的索引
参考资料:https://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.html