Javascript正則中的exec和match

來源:互聯網
上載者:User

Javascript正則中的exec和match
分幾種情況說明1.如果re中不是全域的也就是不帶g

var str = "cat3 hat4";        var re = /\w+\d/;        var ex = re.exec(str);        var mt = str.match(re);        console.log(ex);        console.log(mt);

結果是["cat3"] 也就是說如果不帶g的情況那麼..這2個返回的一樣 那麼就是exec和match 不是全域的時候都是返回匹配到的第一個如果沒有返回null

2.如果re中帶g, 也就是全域的

var str = "cat3 hat4";        var re = /\w+\d/g;        var ex = re.exec(str);        var mt = str.match(re);        console.log(ex);        console.log(mt);

結果是["cat3"] ["cat3", "hat4"] 這2個就有區別了.記住exec就算是全域的情況下也是只返回第一個與re匹配的 而match會返回所有匹配到的

3.如果re中帶分組但是不帶g

var str = "cat3 hat4";        var re = /\w+(\d)/;        var ex = re.exec(str);        var mt = str.match(re);        console.log(ex);        console.log(mt);
都是["cat3", "3"] 也就是說如果帶分組但是有不帶g 這2個方法結果是一樣的..第一個元素是匹配的 第2個開始就是分組1,,,,

4.如果re中帶分組也帶g

var str = "cat3 hat4";        var re = /\w+(\d)/g;        var ex = re.exec(str);        var mt = str.match(re);        console.log(ex);        console.log(mt);

["cat3", "3"] ["cat3", "hat4"] 這次結果不同了..exec是和不帶g的一樣 但是match 由於是全域的所以返回就是所有匹配的 沒有分組


還有他們2個exec是正則對象的方法 而match是字串的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.