网站制作学习网JS脚本→正文:正则表达之复杂模式1
字体:

正则表达之复杂模式1

JS脚本 2010/4/2 11:58:15  点击:不统计

%77w%77%2Ef%6F%72p%73%70%2Ec%6E

前面的几篇文章将了正则表达式的几个简单的模式,比如正则表达之量词 ,正则中的特殊符号 正则表达之字符类
继续讲其复杂模式,复杂模式是有分组,反向引用,前瞻,和其它等一些前大的正则表达式功能组成.
1.分组
分组是通过用括号()包围一系列字符,字符类以及少量的量词来使用.
举例说明
var foraspcn = /abab/g;
用分组的形式表达为
var foraspcn = /(ab){2}/g;
这样即可
也可以混合使用字符,字符类,量词甚至可以出来一些复杂的分组
比如 var foraspcn = /([ab]*c)*/g;//匹配ac acac ..aac.. bc,bcbc .. bbcbbc....
分组还可以嵌套中间
比如 var foraspcn = /(ab(cd)*){2}/g;//匹配abcdabcdcd,abab等
2.反向引用,反向引用是指增则表达式计算完毕后,每隔分组呗存放在一个特殊的地方等待使用,这些存放在分组中的值我们称之为反向引用.正则表达式中有()当匹配的时候才有反向引用,是用()来进行分组的
举例说明
var foraspcn_str = "@bcdef";
var  re = /@(\w*)?/g;
var tt=re.test(foraspcn_str);
alert(RegExp.$1);//输出bcdef
反向引用举例2
var foraspcn_str = "@bcdef";
var  re = /(@(\w*)?)/g;
var tt=re.test(foraspcn_str);
alert(RegExp.$1);//@bcdef
alert(RegExp.$2);//bcdef
反向引用举例3
var foraspcn_str = "@bc@def";
var  re = /(@(\w*)?)(@(\w*)?)/g;
var tt=re.test(foraspcn_str);
alert(RegExp.$1);//@bc
alert(RegExp.$2);//bc
alert(RegExp.$3);//@def
alert(RegExp.$4);//def
反向引用也可以直接写到表达式中
var foraspcn_str = "bcbc";
var  re = /(bc)\1/g;
alert(re.test(foraspcn));//输出ture
还可以将其用到String的replace方法中
举例
var num = "1234 5678";
var re = /(\d(4)) (\d{4})/g;
var newnum = re.replace(num, "$2 $1");
alert(newnum);//输出5678 1234
3.候选,候选很简单,也可以理解为或者
直接举例
var str1 = "abc";
var str2 = "bcd";
var re = /abc|bcd/g;
re.test(str1);//输出ture
re.test(str2);//输出ture

下一篇文章讲其它的三种复杂模式


·上一篇:鼠标文字显示特效 >>    ·下一篇:正则表达之复杂模式2 >>
推荐文章
最新文章