1:
var arr = 'this is 8(baidusohu orsorft)8';
var re = /8(.*)8/;
document.write(arr.replace(re,'<strong>$1</strong>')); //$1获取匹配的字符串的内容*/
运行结果:this is (baidu sohu orsorft)
分析:$1-->匹配的第一个分组内容。
(.*)-->指的是铺货8和8之间的任意字符,其弊端我们在第一节已经说过,不再累赘。
2
var str = 'baidu google';
var re = /(.*)\s(.*)/g;
var a = str.replace(re,'<strong>$1</strong>');
document.write(a);
运行结果:baidu
3var str = 'dfafdaf';
var re = /[a-z]+?/g;
alert(str.replace(re,'1'));补充:因为我们知道正则是具有贪婪性的,所以我们可以选择开启贪婪和关闭贪婪。
4:
var str = 'this is 8google8,this is 8google8,this is 8google8,'; //静止贪婪,开启全局;
var re = /8(.+?)8/g;
document.write(str.replace(re,'<i>$1</i>'));
运行结果:this is google,this is google,this is google,
5.
var str = 'google 2012';
var re = /^[a-z]+\s[0-9]{4}$/;
alert(re.exec(str)); //返回数组,也就是将整个字符串分割为运行结果:google 2012;分析:这里的exec,返回的是一个数组,设数组为:a[0]=google 2012; a[1]=google;a[3]=2012;参考下面的例子,更加说明这个问题。传送门,了解更多的exec.
6.var str = 'google 2012'; //使用了分组
var re = /(^[a-z]+)\s([0-9]{4})$/;
var a = re.exec(str);
alert(a[0]);
alert(a[1]);
alert(a[2]);运行结果:同上;7.捕获性分组//捕获型分组,所有的分组都捕获返回;
var str = '123abc';
var re = /(\d+)([a-z])/;
alert(re.exec(str));运行结果:123a,123,a
8.非捕获性分组3.删除首末空格//非捕获性分组只要在不需要捕获的分组前面加上?:就行。
var str = '123abc';
var re = /(\d+)(?:[a-z])/;
alert(re.exec(str));运行结果:123a,123
9.嵌套【不常用】//嵌套分组,由内往外开始匹配。
var str = 'abc';
var re = /(a?(b?(c?)))/;
alert(re.exec(str));运行结果:abc,abc,bc,c10,前瞻性捕获//前瞻性捕获
var str = 'google'; //goo后面必须是gle才捕获返回的是goo;否则返回的Null:
var re = /goo(?=gle)/;
alert(re.exec(str));运行结果:goo
11,//特殊字符匹配,利用反斜杠转义
var str = '[';
var re = /\[/;
alert(re.exec(str));运行结果:[12.//使用换行模式
var str = '1:baidu\n2:google\n3:sohu'; //使用全局匹配。
var re = /^\d/gm;
alert(str.replace(re,'#'));
运行结果:#:baidu#:sohu实例1.
//邮政编码的匹配:6位 首位不为0 ;
var str = 'this is my code 224000';
var re = /[1-9][0-9]{5}/;
alert(re.test(str));2//检查文件的压缩包:123.zip-->文件名:字母 数字 下划线 . zip gz rar
var str = '123.zip';//一定要限定从头开始匹配。比如1-23.rar;如果不加怎也可以开始匹配。
var re = /^\w+\.zip|gz|rar/;
alert(re.test(str));*/方法 a)://删除首位的空格
var str = ' hsfds fsdf fsd ';
var re = /^\s+|\s+$/g
alert('|'+str.replace(re,'')+'|');
方法 b):
//还是上面删除的例子,解法2:非贪婪模式的惰性模式
var str = ' hsfds fsdf fsd ';
var re = /^\s+(.+?)\s+$/;
alert('|'+re.exec(str)[1]+'|');
方法 c):
//解法3:使用分组捕获
var str = ' hsfds fsdf fsd ';
var re = /^\s+(.+?)\s+$/;
var a = str.replace(re,'$1');
alert('|'+a+'|');
4.电子邮箱的验证
//电子邮件验证
var str = 'qyl_tjshydx@qq.com';
var re = /^([\w\.\-]+)@([a-z0-9])\.([a-zA-Z]{2,4})$/;
alert(re.test(str));
*******************************************************