正则式(二)

前端之家收集整理的这篇文章主要介绍了正则式(二)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

继续上篇分享.


/*使用分组模式匹配*/
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

猜你在找的正则表达式相关文章