一個最常用的場景 截取兩個字符串中間的字符串
var str = "iid0000ffr";
var substr = str.match(/id(\S*)ff/);
alert(substr2);
你會發現逗號後面是你要的東西
/S*表示多個字符串
爲什麼想要的東西在逗號後,也就是數組第二個.
是因爲match的返回數組,第一個表示匹配的字符串,這裏是包括id ff的,結果是id0000ff
第二個是子正則表達式,什麼是子正則表達式,()裏面的內容就是子正則表達式,就是指\s*,這纔是我們要的東西
我們還可以寫複雜點,
var substr = str.match(/ab\S*d(\S*)ff/);
這個表示以ab開始d結尾的字符串 同ff字符串之間的字符串
其實,在高級語言裏,我們會用一個叫數量詞的概念
就是
(?=abc)這表示以abc結尾的前面的字符串,但不包括abc
var str = "iid0000ffr";
var substr = str.match(/(\S*)(?=ff)/);
alert(substr2);
但你不能直接寫
var substr = str.match(/(?=ff)/);
因爲它只管邏輯,但不會輸出.
這種東西叫
正向肯定預查,就是查***前面的字符串,
很多高級語言裏面還有叫"反向肯定預查",就是叫***後面的字符串,一般是這樣寫
?<=abc
不過可憐js不支持