(一):
貪婪:正則在匹配的時候,,預設匹配的是最長的結果
吝嗇:禁止貪婪,在量詞後面加上?,表示返回最短的結果
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呢?由此問題引發出來的就是貪婪與非貪婪模式...