JS正則貪婪與吝嗇,分組

2021-09-05 03:48:45 字數 1867 閱讀 8139

(一):

貪婪:正則在匹配的時候,,預設匹配的是最長的結果

吝嗇:禁止貪婪,在量詞後面加上?,表示返回最短的結果

let reg = /.*?<\/p>/;//匹配任意個任意字元,.代表任意的意思

let str = "the first p

the second p

";let obj = reg.exec(str);

console.log(obj);

(二):

分組:()中的內容表示分組,分組中匹配到的內容會單獨儲存在匹配結果中

var reg = /是(\d)/;

var str = "你的驗證碼是123456,請盡快輸入";

var obj = reg.exec(str);

console.log(obj);

非捕獲型分組:分組中匹配到的內容不顯示在陣列中

var reg = /是(?:\d)/;

var str = "你的驗證碼是123456,請盡快輸入";

var obj = reg.exec(str);

console.log(obj);

(三):

前瞻(先行斷言)

(1)正向前瞻(正向零寬先行斷言)

console.log(obj);(2)反向前瞻(負向零寬先行斷言)

var str = "aaa00,bbbb11,ccc3";

var reg = /[a-z](?!00)/;

var obj = reg.exec(str);

console.log(obj);

(四):

可以用於正規表示式的字串物件中的方法:

(1)replace()方法:

//匹配字串中的所有空格

var str = " 你的驗證碼 是123456, 請盡快輸入 ";

console.log(str);

console.log(str.length);

var obj = str.replace(/ /g,'');

console.log(obj);

console.log(obj.length);

//匹配字串的開頭和結尾空格

var str = " 你的驗證碼 是123456, 請盡快輸入 ";

console.log(str);

console.log(str.length);

var obj = str.replace(/^ | $/g,'');

console.log(obj);

console.log(obj.length);

(2)split()方法:

var str = "a1b2c3d4e";

var obj = str.split(/\d/g);

console.log(obj);

結果如下:[ 'a', 'b', 'c', 'd', 'e' ]

(3)match()方法:

var str = "a1b2x3d4e";

var obj = str.match(/\d/g);

console.log(obj);

結果如下:[ '1', '2', '3', '4' ]

JS正則(貪婪模式)

js學習筆記 用到的幾個鏈結 可以當api用,說的很詳細。講解貪婪惰性 正規表示式量詞分別是 貪婪的 惰性的 支配性的。貪婪 惰性 支配 分別的意思是 零次或一次出現 零次或多次出現 一次或多次出現 恰好n次出現 至少n次最多m次出現 至少n次出現。貪婪量詞 先看整個字串是否匹配,如果不匹配就把最後...

js正則貪婪模式 JS關於正則的非貪婪模式

首先正則是很複雜,很巧妙的。你舉的這個例子說明貪婪模式和非貪婪模式是不對的。啥是貪婪模式,和非貪婪模式?貪婪模式,就是 貪得無厭 有了還要,有多少要多少,指導沒有 字串尾 非貪婪模式,恰好相反,匹配了就不要了,就得到結果。我先舉乙個例子來說明,貪婪模式和非貪婪模式,只在你的基礎上稍稍改動,為了後面對...

正規表示式 貪婪與非貪婪

在一段時間內,一直不知道.和.之間的區別,一直單純的覺得兩者之間並沒有什麼區別,都是匹配任意字元,知道今天才知道其中的區別 首先從乙個簡單的問題的問題開始思考 有這樣乙個字串aaabaaab,和這樣的乙個正則.b,那麼.匹配的會是aaab還是aaabaaab呢?由此問題引發出來的就是貪婪與非貪婪模式...