笔记
/***正则的两种写法**/ var re=//; var re=new RegExp(); /***正则方法test 正则去匹配字符串,匹配成功true,不成功false**/ var str='abcdef'; var re=/b/; alert(re.test(str));//true /***正则方法Search 正则去匹配字符串,匹配成功,返回匹配位置,不成功返回-1**/ var str='abcdef'; var re=/C/i; alert(str.search(re));//2 /***正则方法match 正则去匹配字符串,匹配成功就返回匹配成功的数组,不成功返回null**/ var str='sdf12ssdf2646sdfe'; var re=/\d+/g; alert(str.match(re)); /***正则方法replace 正则去匹配字符串,匹配成功字符去替换成新的字符**/ //replace:第二个参数,可以是字符串,也可以是一个回调函数 var str='aaa'; var re=/a/g; str=str.replace(re,'b'); alert(str);//bbb; /**转义字符***/ \s:空格 \S:非空格 \d:数字 \D:非数字 \w:字符 (字母,数字,下划线_) \W:非字符 \b:独立的部分(起始,结束,空格) \B:非独立的部分 .:任意字符 \.:真正的点 /***写法***/ //正则默认是区分大小写的 i : 不区别大小写,写到正则最后 //正则默认匹配成功就会结束,不会继续匹配 g : 全部查找(全局匹配),写到正则最后 + : 量词,匹配不确定位置,至少出现一次 {}: 量词,比如{4,7}最少出现4次,最多出现7次,如果是{4,}最少出现4次,{4}正好出现4次 ? : 量词,表示0次或者1次用{}表示的话就是{0,1}; * : 量词,至少出现0次,用{}表示就是{0,}; | : 或的意思 (): 匹配子项,还有另外一个意思分组操作,整个正则就是一个整体,第个()就是子项 [] :字符类:一级相似的元素用表示 ^ :排除,如果^写在[]里面的话,就代表排除的意思,如果放到正则最前面就代表起始的意思 $ :结束,如果放到正则最后位置,就代表结束的意思 a-z:范围还可以0-9 \1,\2:重复子项,如果是1就是重复第1个子项,如果是2就是第2个子项 /****例子1***/ var str='2015-5-5'; var re=/(\d+)(-)/g; str.replace(re,function($0,$1,$2){ //$0==(\d+)(-) //$1==(\d+) //$2==(-) alert($0); }) /****例子2***/ var str='abs'; //var str='abcs'; //下面会返回false; var re=/a[bde]s/; //[]有些像js里的! alert(re.test(str));//true; /****例子3***/ var str='abs'; var re=/a[^bde]s/;//排除bde alert(re.test(str));//false; /****例子4***/ var str="one two"; var re=/one\b/; alert(re.test(str));//true; /****例子5***/ //如果要alert个符号必须要在他前面加个\转义; /****例子6***/ var str='abca'; var re=/(a)(b)(c)\1/;//\2 abcb false alert(re.test(str));;//true
///******例子6*****//
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*$
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
网址:[a-zA-z]+://[^\s]*
QQ号:[1-9][0-9]{4,9}
邮政编码:[1-9]\d{5}
身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x