标签:正则 javascript
继续上篇分享.
/*使用分组模式匹配*/ 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标签:正则 javascript
原文地址:http://blog.csdn.net/xfz0330/article/details/46572165