新聞中心
這篇文章給大家分享的是有關(guān)ES6中正則表達(dá)式和字符串正則方法的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),鋼城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鋼城等地區(qū)。鋼城做網(wǎng)站價(jià)格咨詢:18980820575
RegExp構(gòu)造函數(shù)
在ES5中,RegExp構(gòu)造函數(shù)的參數(shù)有兩種情況。
第一種情況是,參數(shù)是字符串,這時(shí)第二個(gè)參數(shù)表示正則表達(dá)式的修飾符(flag)。
var regex = new RegExp('xyz', 'i'); // 等價(jià)于 var regex = /xyz/i;
第二種情況是,參數(shù)是一個(gè)正則表示式,這時(shí)會(huì)返回一個(gè)原有正則表達(dá)式的拷貝。
var regex = new RegExp(/xyz/i); // 等價(jià)于 var regex = /xyz/i;
但是,ES5不允許此時(shí)使用第二個(gè)參數(shù),添加修飾符,否則會(huì)報(bào)錯(cuò)。
var regex = new RegExp(/xyz/, i); // Uncaught TypeError: Cannot supply flags when constructing one RegExp from another
ES6改變了這種行為。如果RegExp構(gòu)造函數(shù)第一個(gè)參數(shù)是一個(gè)正則對象,那么可以使用第二個(gè)參數(shù)指定修飾符。而且,返回的正則表達(dá)式會(huì)忽略原有的正則表達(dá)式的修飾符,只使用新指定的修飾符。
new RegExp(/abc/ig, 'i').flags // "i"
上面代碼中,原有正則對象的修飾符是ig,它會(huì)被第二個(gè)參數(shù)i覆蓋。
字符串的正則方法
字符串對象共有4個(gè)方法,可以使用正則表達(dá)式:match()
、replace()
、search()
和split()
。
ES6將這4個(gè)方法,在語言內(nèi)部全部調(diào)用RegExp的實(shí)例方法,從而做到所有與正則相關(guān)的方法,全都定義在RegExp對象上。
String.prototype.match
調(diào)用 RegExp.prototype[Symbol.match]String.prototype.replace
調(diào)用 RegExp.prototype[Symbol.replace]String.prototype.search
調(diào)用 RegExp.prototype[Symbol.search]String.prototype.split
調(diào)用 RegExp.prototype[Symbol.split]
字符串對象共有4個(gè)方法,可以使用正則表達(dá)式:match()、replace()、search()和split()。
感謝各位的閱讀!關(guān)于“ES6中正則表達(dá)式和字符串正則方法的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
當(dāng)前文章:ES6中正則表達(dá)式和字符串正則方法的示例分析
新聞來源:http://fisionsoft.com.cn/article/podchd.html