继续上篇分享.
/*使用分组模式匹配*/ var pattern =/8(.*)8/;//获取8..8之间的任意字符 var str = 'goo8gle8'; str.match(pattern); alert(RegExp.$1);//gle,得到第一个分组里的字符串内容 var pattern =/8(.*)8/;//获取8..8之间的任意字符 var str = 'goo8gle8'; var result =str.replace(pattern,'<strong>$1</strong>');//得到替换的字符串输出 document.write(result);
运行结果:
var pattern =/(.*)\s(.*)/; var str = 'google baidu'; var result =str.replace(pattern,'$2 $1');//将两个分组的值替换输出document.write(result);
运行结果:
贪婪和惰性
/*关于贪婪和惰性*/ var pattern =/[a-z]+?/;//?关闭了贪婪匹配,只替换了一个 var str = 'abcdefjh'; var result =str.replace(pattern,'xxx'); alert(result);
运行结果:
varpattern = /8(.+?)8/;//禁止了贪婪,开启的全局(另一种禁止贪婪/8([^8]*)8/) var str ='a8b8c8d8e8fjh'; var result =str.replace(pattern,'<strong>$1</strong>'); document.write(result);
运行结果:
/*使用exec返回数组*/ var pattern =/^[a-z]+\s[0-9]{4}$/i;//行首至行尾匹配 var str = 'google 2015'; alert(pattern.exec(str));//返回整个字符串 var pattern =/^[a-z]+/i;//只匹配字母 var str = 'google 2015'; alert(pattern.exec(str));//返回google var pattern =/^([a-z]+)\s([0-9]{4})$/i;//使用分组 var str = 'google 2015'; alert(pattern.exec(str)[0]);//返回google2015 alert(pattern.exec(str)[1]);//返回google alert(pattern.exec(str)[2]);//返回2015 /*捕获性分组和非捕获性分组*/ var pattern =/(\d+)([a-z]+)/;//捕获性分组 var str = '2015google'; alert(pattern.exec(str));
运行结果:
var pattern =/(\d+)(?:[a-z])/;//非捕获性分组 var str = '2015google'; alert(pattern.exec(str));
运行结果:
/*使用分组嵌套*/ var pattern =/(A?(B?(C?)))/;//从外往内获取 var str = 'ABC'; alert(pattern.exec(str));
运行结果:
/*使用前瞻捕获*/ var pattern =/(goo(?=gle))/;//goo后面必须跟着gle才能捕获 var str = 'google'; alert(pattern.exec(str));//goo,goo /*使用特殊字符匹配*/ var pattern =/\.\[\/b\]/;//特殊字符,用\符号转义即可 var str = '.[/b]'; alert(pattern.exec(str));//.[/b] /*使用换行模式*/ var pattern =/^\d+/mg;//启用换行模式 var str ='1.baidu\n2.google\n3.bing'; var result =str.replace(pattern,'#');//1/2/3用'#'替换 alert(result);
运行结果:
常用正则
/*检查邮政编码*/ var pattern =/[1-9][0-9]{5}/;//共6位数字,第一位不能为0 var str = '165000'; alert(pattern.test(str));//true /*检查文件压缩包*/ var pattern =/[\w]+\.zip|rar|gz/;//\w所有数字和字母和_ var str = '123.gz'; alert(pattern.test(str));//true /*删除多余空格*/ var pattern = /\s/g; var str = '1 2 3'; var result =str.replace(pattern,''); alert(result);//123 /*删除首尾空格*/ var pattern =/^\s+/g;//强制首 var str = ' 1 2 3 '; var result =str.replace(pattern,''); pattern = /\s+$/;//强制尾 result =result.replace(pattern,''); alert('|'+ result+'|');//123
运行结果(强制首/强制尾):
/*简单的电子邮件验证*/ var pattern =/^([a-zA-Z0-9_\.]+)@([a-zA-Z0-9_\.]+)\.([a-zA-Z]{2,4})/; var str ='yc60.com@gmail.com'; alert(pattern.test(str));//true