正則中的圓括號(hào)()的用途詳解
首先我們前面介紹過(guò),replace()方法中的第二個(gè)參數(shù)若是回調(diào)函數(shù),那么這個(gè)回調(diào)函數(shù)中的參數(shù)就是匹配成功后的結(jié)果。。。。。,那么有沒(méi)有考慮回調(diào)函數(shù)中有多個(gè)參數(shù)呢?
先舉個(gè)例子:
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> 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);*/ }); }; </script> <body> </body> </html>
上面的例子需要你分別查看a1,a2,a3的值,你會(huì)發(fā)現(xiàn)一些規(guī)律
單獨(dú)查看a1:2015- 8-
單獨(dú)查看a2:2015 8
單獨(dú)查看a3:- -
把三個(gè)參數(shù)形象的打個(gè)比方吧,a1相當(dāng)于母親,a2是大兒子,a3是小兒子,每個(gè)兒子都繼承了媽媽的一部分基因
a1是var re=/\d+-/g; 這個(gè)正則的結(jié)果
a2是var re=/(\d+)(-)/g;左邊第一個(gè)括號(hào)的結(jié)果
a2是var re=/(\d+)(-)/g;左邊第二個(gè)括號(hào)的結(jié)果
說(shuō)了這么多參數(shù)的用途,下面我們來(lái)實(shí)現(xiàn)輸出:2015.8.7
方法一:對(duì)兒子操作
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> 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); }; </script> <body> </body> </html>
方法二:對(duì)母親操作
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> 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); }; </script> <body> </body> </html>
學(xué)了正則中的replace()方法的回調(diào)函的多個(gè)參數(shù)與括號(hào)之間的關(guān)系,瞬間覺(jué)得正則復(fù)雜了起來(lái)。。。。
正則表達(dá)式中方括號(hào)[]與圓括號(hào)()的區(qū)別是什么?
最基本的意思:小括號(hào)就是括號(hào)內(nèi)看成一個(gè)整體 ,中括號(hào)就是匹配括號(hào)內(nèi)的其中一個(gè),大括號(hào)就是匹配幾次
但是括號(hào)里變加上其他字符就有不同意思 詳細(xì)介紹 例如:
{n}
n是一個(gè)非負(fù)整數(shù).匹配確定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個(gè)o.
{n,}
n是一個(gè)非負(fù)整數(shù).至少匹配n次.例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o.“o{1,}”等價(jià)于“o+”.“o{0,}”則等價(jià)于“o*”.
{n,m}
m和n均為非負(fù)整數(shù),其中n
[] 無(wú)意義,一般用作匹配一個(gè)集合
比如
[0-9] :查找任何從 0 至 9 的數(shù)字.
[a-Z] :查找任何從小寫(xiě) a 到大寫(xiě) Z 的字符.
()也是匹配一個(gè)集合,但它還可以用作反向引用.
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
使用正則表達(dá)式去除所有html標(biāo)簽只保留文字
這篇文章主要介紹了使用正則表達(dá)式去除所有html標(biāo)簽只保留文字效果,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07詳解正則表達(dá)式Matcher類(lèi)中g(shù)roup方法
這篇文章主要介紹了正則表達(dá)式Matcher類(lèi)中g(shù)roup方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦)
這篇文章主要介紹了 一個(gè)容易犯錯(cuò)的js手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式(推薦),需要的朋友可以參考下2017-03-03談?wù)勎覍?duì)正則表達(dá)式的認(rèn)識(shí)
正則表達(dá)式(Regular Expression)是一個(gè)概念,一種語(yǔ)法、句法的約定。每一種具體的語(yǔ)句(C#,Java,JavaScript)有其對(duì)于正則表達(dá)式的具體實(shí)現(xiàn),并且會(huì)有差別。正則表達(dá)式30分鐘入門(mén)教程講述的是.net(C#)的正則表達(dá)式2014-02-02通過(guò)正則表達(dá)式使用ajax檢驗(yàn)注冊(cè)信息功能
這篇文章主要介紹了通過(guò)正則表達(dá)式使用ajax檢驗(yàn)注冊(cè)信息,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10