ES6學習筆記之正則表達式和字符串正則方法分析
本文實例講述了ES6正則表達式和字符串正則方法。分享給大家供大家參考,具體如下:
RegExp構造函數(shù)
在ES5中,RegExp構造函數(shù)的參數(shù)有兩種情況。
第一種情況是,參數(shù)是字符串,這時第二個參數(shù)表示正則表達式的修飾符(flag)。
var regex = new RegExp('xyz', 'i');
// 等價于
var regex = /xyz/i;
第二種情況是,參數(shù)是一個正則表示式,這時會返回一個原有正則表達式的拷貝。
var regex = new RegExp(/xyz/i); // 等價于 var regex = /xyz/i;
但是,ES5不允許此時使用第二個參數(shù),添加修飾符,否則會報錯。
var regex = new RegExp(/xyz/, i); // Uncaught TypeError: Cannot supply flags when constructing one RegExp from another
ES6改變了這種行為。如果RegExp構造函數(shù)第一個參數(shù)是一個正則對象,那么可以使用第二個參數(shù)指定修飾符。而且,返回的正則表達式會忽略原有的正則表達式的修飾符,只使用新指定的修飾符。
new RegExp(/abc/ig, 'i').flags // "i"
上面代碼中,原有正則對象的修飾符是ig,它會被第二個參數(shù)i覆蓋。
字符串的正則方法
字符串對象共有4個方法,可以使用正則表達式:match()、replace()、search()和split()。
ES6將這4個方法,在語言內(nèi)部全部調(diào)用RegExp的實例方法,從而做到所有與正則相關的方法,全都定義在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個方法,可以使用正則表達式:match()、replace()、search()和split()。
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《ECMAScript6(ES6)入門教程》、《JavaScript正則表達式技巧大全》、《JavaScript替換操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript錯誤與調(diào)試技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
javascript實現(xiàn)數(shù)組內(nèi)值索引隨機化及創(chuàng)建隨機數(shù)組的方法
這篇文章主要介紹了javascript實現(xiàn)數(shù)組內(nèi)值索引隨機化及創(chuàng)建隨機數(shù)組的方法,涉及javascript數(shù)組索引及隨機數(shù)的相關實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
JavaScript 定時器 SetTimeout之定時刷新窗口和關閉窗口(代碼超簡單)
這篇文章主要介紹了JavaScript 定時器 SetTimeout之定時刷新窗口和關閉窗口(代碼超簡單)的相關資料,需要的朋友可以參考下2016-02-02
JavaScript?邏輯且(&&)和邏輯或(||)的運用小結
這篇文章主要介紹了JavaScript?邏輯且(&&)和邏輯或(||)的妙用?,通過實例代碼介紹了邏輯且(&&)和邏輯或(||)的詳細用法,需要的朋友可以參考下2022-09-09

