一個(gè)最常用的場景 截取兩個(gè)字符串中間的字符串 var str = "iid0000ffr"; 你會(huì)發(fā)現(xiàn)逗號(hào)后面是你要的東西 /S*表示多個(gè)字符串 為什么想要的東西在逗號(hào)后,也就是數(shù)組第二個(gè). 是因?yàn)閙atch的返回?cái)?shù)組,第一個(gè)表示匹配的字符串,這里是包括id ff的,結(jié)果是id0000ff 第二個(gè)是子正則表達(dá)式,什么是子正則表達(dá)式,()里面的內(nèi)容就是子正則表達(dá)式,就是指\s*,這才是我們要的東西
我們還可以寫復(fù)雜點(diǎn), var str2='erwab999999d789eeff'; var substr = str2.match(/ab\S*d(\S*)ff/); 這個(gè)表示以ab開始d結(jié)尾的字符串 同ff字符串之間的字符串,輸出:["ab999999d789eeff", "789ee"]
其實(shí),在高級(jí)語言里,我們會(huì)用一個(gè)叫數(shù)量詞的概念 就是 (?=abc)這表示以abc結(jié)尾的前面的字符串,但不包括abc var str = "iid0000ffr"; 但你不能直接寫 var substr = str.match(/(?=ff)/); 因?yàn)樗还苓壿?但不會(huì)輸出. 這種東西叫正向肯定預(yù)查,就是查***前面的字符串, 很多高級(jí)語言里面還有叫"反向肯定預(yù)查",就是叫***后面的字符串,一般是這樣寫 ?<=abc 不過可憐js不支持 |
|