正则中的圆括号()的用途详解
首先我们前面介绍过,replace()方法中的第二个参数若是回调函数,那么这个回调函数中的参数就是匹配成功后的结果。。。。。,那么有没有考虑回调函数中有多个参数呢? 先举个例子: lt;!DOCTYPEgt; lt;htmlgt; lt;headgt; lt;meta charset='utf-8'gt; lt;titlegt;lt;/titlegt; lt;/headgt; lt;script type="text/javascript"gt; window.onload=function(){ var date='2015-8-7'; var re=/(d+)(-)/g; date.replace(re,function(a1,a2,a3){ /*alert(a1);*/ alert(a2); /*alert(a3);*/ }); }; lt;/scriptgt; lt;bodygt; lt;/bodygt; lt;/htmlgt; 上面的例子需要你分别查看a1,a2,a3的值,你会发现一些规律 单独查看a1:2015- 8- 把三个参数形象的打个比方吧,a1相当于母亲,a2是大儿子,a3是小儿子,每个儿子都继承了妈妈的一部分基因 a1是var re=/d+-/g; 这个正则的结果 说了这么多参数的用途,下面我们来实现输出:2015.8.7 方法一:对儿子操作 lt;!DOCTYPEgt; lt;htmlgt; lt;headgt; lt;meta charset='utf-8'gt; lt;titlegt;lt;/titlegt; lt;/headgt; lt;script type="text/javascript"gt; window.onload=function(){ var date='2015-8-7'; var re=/(d+)(-)/g; var a=date.replace(re,function(a1,a2,a3){ return a2+'.'; }); alert(a); }; lt;/scriptgt; lt;bodygt; lt;/bodygt; lt;/htmlgt; 方法二:对母亲操作 lt;!DOCTYPEgt; lt;htmlgt; lt;headgt; lt;meta charset='utf-8'gt; lt;titlegt;lt;/titlegt; lt;/headgt; lt;script type="text/javascript"gt; window.onload=function(){ var date='2015-8-7'; var re=/(d+)(-)/g; var a=date.replace(re,function(a1,a2,a3){ return a1.substring(0,a1.length-1)+'.'; }); alert(a); }; lt;/scriptgt; lt;bodygt; lt;/bodygt; lt;/htmlgt; 学了正则中的replace()方法的回调函的多个参数与括号之间的关系,瞬间觉得正则复杂了起来。。。。 正则表达式中方括号[]与圆括号()的区别是什么#63; 最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次 [] 无意义,一般用作匹配一个集合 以上所述就是本文的全部内容了,希望大家能够喜欢。 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |