JavaScript 定義正則表達式的兩種形式:RegExp(),正則表達式直接量

每當請教別人正則表達式的一些問題時,總會臉紅,沒辦法,咱這腦袋實在記不住這些玩意。只有“坐觀垂釣者,徒有羨魚情 ”的份。 今天呢就來簡單介紹一下在 JavaScript 中定義正則表達式的兩種形式,首先聲明的是,正則表達式是一門高深的學問,我只能略微的給大家介紹一下,因爲我也是個半吊子。

JavaScript 中的正則表達式 :

先來簡單介紹一下JavaScript中的正則表達式。ECMAScript v3 對 JavaScript 正則表達式進行了標準化。JavaScript 1.2 實現了ECMAScript v3 要求的正則表達式的子集,JavaScript 1.5實現了完整的標準。JavaScript的正則表達式完全以Perl程序設計語言的正則表達式工具爲基礎,所以如果您用過Perl語言,那我將要介紹的東西對您來講絕對是小菜一碟 。具體點來說就是:

JavaScript 1.2 實現了 Perl 4 的正則表達式,JavaScript 1.5 實現了 Perl 5 的正則表達式的大型子集。

用RegExp()構造函數 定義JavaScript的正則表達式 :

在JavaScript中,正則表達式由RegExp對象表式 。根據我們之前介紹的內容,可以使用RegExp()構造函數創建RegExp對象。

構造函數RegExp()有一個或兩個字符串參數,它將創建一個新的RegExp對象。該構造函數的第一個參數是包含正則表達式主體的字符串 ,即稍候介紹的正則表達式直接量中出現在斜線對之間的文本。第二個參數是 可選的。如果提供了此參數,它說明的就是該正則表達式的標誌 ,這個我後面的日誌會介紹到(敬請關注)。

用RegExp()構造函數創建正則表達式示例:

//定義一個全局的,九個數字的正則表達式
var pattern = new RegExp( "// d{9}" , "g" ) ;

用正則表達式直接量 定義JavaScript的正則表達式 :

JavaScript 還提供正則表達式直接量這種語法,使您可以更方便的創建JavaScript正則表達式。其被定義爲包含在一對斜槓(/)之間的字符。 一般大家在寫js腳本的時候,比較常見的創建正則表達式的方法就是通過使用正則表達式直接量定義的。

用正則表達式直接量創建正則表達式示例:

//定義一個全局的,九個數字的正則表達式
var pattern = //d{9}/ ;

需要注意的地方 :

無論是正則表達式直接量還是正則表達式都使用了字符/表示轉義序列,所以當你將正則表達式作爲 字符串直接量傳遞給RegExp()時,必須用//來替換所有的/字符。 示例大家可以看我用RegExp()構造函數定義JavaScript正則表達式的例子。

總結 :

無論是用正則表達式直接量還是用構造函數RegExp(),創建一個RegExp對象(正則表達式就是用RegExp對象來表示的)都是很容易的。 但是較爲困難的是用正則表達式語法來描述字符的模式。通俗點說就是正則表達式定義是很容易的,但是定義的是否準確這就需要工夫了,小弟不才自認水平不行。 所以以後的講解中難免會有錯誤,請大家不吝指教。網上有比較好的教程:正則表達式30分鐘入門教程,大家如果感興趣可以去讀一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章