本帖最后由 罗玉宁 于 2013-3-21 02:04 编辑
/*使用分组模式匹配*/ varpattern=/(google){4,8}/; //匹配分组里的字符串4-8次 varstr='googlegoogle'; alert(pattern.test(str)); varpattern=/8(.*)8/; //获取8..8之间的任意字符 varstr='Thisis8google8'; str.match(pattern); alert(RegExp.$1); //得到第一个分组里的字符串内容 varpattern=/8(.*)8/; varstr='Thisis8google8'; varresult=str.replace(pattern,'<strong>$1</strong>'); //得到替换的字符串输出 document.write(result); varpattern=/(.*)\s(.*)/; varstr='googlebaidu'; varresult=str.replace(pattern,'$2$1'); //将两个分组的值替换输出 document.write(result); /*使用exec返回数组*/ varpattern=/^[a-z]+\s[0-9]{4}$/i; varstr='google2012'; alert(pattern.exec(str)); //返回整个字符串 varpattern=/^[a-z]+/i; //只匹配字母 varstr='google2012'; alert(pattern.exec(str)); //返回google varpattern=/^([a-z]+)\s([0-9]{4})$/i; //使用分组 varstr='google2012'; alert(pattern.exec(str)[0]); //google2012 alert(pattern.exec(str)[1]); //google alert(pattern.exec(str)[2]); //2012 /*捕获性分组和非捕获性分组*/ varpattern=/(\d+)([a-z])/; //捕获性分组 varstr='123abc'; alert(pattern.exec(str)); varpattern=/(\d+)(?:[a-z])/; //非捕获性分组 varstr='123abc'; alert(pattern.exec(str)); /*使用分组嵌套*/ varpattern=/(A?(B?(C?)))/; //从外往内获取 varstr='ABC'; alert(pattern.exec(str)); /*使用前瞻捕获*/ varpattern=/(goo(?=gle))/; //goo后面必须跟着gle才能捕获 varstr='google'; alert(pattern.exec(str)); /*使用特殊字符匹配*/ varpattern=/\.\[\/b\]/; //特殊字符,用\符号转义即可 varstr='.'; alert(pattern.test(str)); /*使用换行模式*/ varpattern=/^\d+/mg; //启用了换行模式 varstr='1.baidu\n2.google\n3.bing'; varresult=str.replace(pattern,'#'); alert(result); 三.常用的正则 1.检查邮政编码 varpattern=/[1-9][0-9]{5}/; //共6位数字,第一位不能为0 varstr='224000'; alert(pattern.test(str)); 2.检查文件压缩包 varpattern=/[\w]+\.zip|rar|gz/; //\d\w_表示所有数字和字母加下划线 varstr='123.zip'; //\.表示匹配.,后面是一个选择 alert(pattern.test(str)); 3.删除多余空格 varpattern=/\s/g; //g必须全局,才能全部匹配 varstr='111222333'; varresult=str.replace(pattern,''); //把空格匹配成无空格 alert(result); 4.删除首尾空格 varpattern=/^\s+/; //强制首 varstr=' goo gle '; varresult=str.replace(pattern,''); pattern=/\s+$/; //强制尾 result=result.replace(pattern,''); alert('|'+result+'|'); varpattern=/^\s*(.+?)\s*$/; //使用了非贪婪捕获 varstr=' google '; alert('|'+pattern.exec(str)[1]+'|'); varpattern=/^\s*(.+?)\s*$/; varstr=' google '; alert('|'+str.replace(pattern,'$1')+'|'); //使用了分组获取 5.简单的电子邮件验证 varpattern=/^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/; varstr='yc60.com@gmail.com'; alert(pattern.test(str)); varpattern=/^([\w\.\-]+)@([\w\.\-]+)\.([\w]{2,4})$/; varstr='yc60.com@gmail.com'; alert(pattern.test(str)); |