javascript 正则表达式入门到高级-03

go~on~正则之小例子-->大补充:

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
3

var str = 'dfafdaf';
var re = /[a-z]+?/g;
alert(str.replace(re,'1'));

 
 
补充:因为我们知道正则是具有贪婪性的,所以我们可以选择开启贪婪和关闭贪婪。

 

正则表达式---火星文其实并不难(3) - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。

 

 
 
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.非捕获性分组

//非捕获性分组只要在不需要捕获的分组前面加上?:就行。
 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,c
10,前瞻性捕获

//前瞻性捕获
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
        #:google
        #: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));*/


3.删除首末空格
方法 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));


*******************************************************

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值