1.作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择 2.两种创建方式
直接量var reg = /abc/属性;
new RegExp();var reg = new RegExp(“abc”,“属性”);
3.属性: i:忽视大小写 g:全局匹配 m:多行匹配 4.方法
reg.test(); //找在str中有没有相同片段,返回true , false reg.exec(); //搜索字符串,未找到则为null,在g下游标会移动,确定位置,lastIndex可以改变游标 str.match(); //找在str中相同片段,并返回片段
var reg = /abc/i; var str = "Abcdef";5.表达式 [ ]
一个表达式是一位,里面填写的是区间 var reg = /[0-9][0123456789][0123456789]/g; var str = "231sdf43465hgghgf" str.match(reg); //""231","434""6.元字符
\w == [0-9A-z] \d == [0-9] 查找数字 \s == [\t\n\r\v\f ] 查找空白字符 \b == [单词边界] \uxxxx :十六进制规定的unicode字符 . == [^\n\r] (不是\n\r)
7.量词
n+ :匹配任何包含至少一个n的字符串 {1, } n* :匹配任何包含零个或多个n的字符串 {0, } n? : 匹配任何包含零个或一个n的字符串 {0,1} n{x,y} :{x, y} ^n :开头 n$ :结尾
例题
检验一个字符首尾是否含有数字(首或尾) var reg = /^\d|\d$/g;
8.replace() 反转
var reg = /(\w)\1(\w)\2/g;//子表达式1(\w),2(\w) var str = "aabb"; console.log(str.replace(reg,"$2$2$1$1"));//$获取子表达式的内容替换
var reg = /-(\w)/g; var str = "the-first-name"; console.log(str.replace(reg,function($,$1){ //第一个参数是全局的,第二个是第一子表达式,依次类推 return $1.tuUpperCase(); }));字符串去重
var str = "aaaaaaabbbbbccccc"; var reg = /(\w)\1*/g; console.log(str.replace(reg,"$1"));科学计数法
var str = "10000000000"; var reg = /((?=(\B)\d{3})+$)/g; console.log(str.replace(reg,"."));//10.000.000.000