建構函式方式建立正規表示式
在JavaScript中建立物件有兩種方式:
(1).直接量方式。
(2).建構函式方式。
正規表示式也不列外,先看一通過直接量方式建立正規表示式例項:
[JavaScript] 純文字檢視 複製程式碼let reg=/[abc]/g
非常簡單,不多介紹,下面介紹一下通過建構函式建立正規表示式。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let strReg = new RegExp("[abc]"); let str = "abcdef"; str.match(strReg);
上面程式碼很簡單,可以匹配字串中的字元"a"。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼let dotReg = new RegExp("."); let dotStr = "abcdef."; dotStr.match(dotReg);
我們本來的意思是要匹配字串中的點,但是卻匹配了字元中的"a",因為建構函式引數中的點(.)在正規表示式中可以匹配任意字元,程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼let dotReg = new RegExp("\."); let dotStr = "abcdef."; dotStr.match(dotReg);
儘管已經為點(.)轉義,但依然匹配字串中的"a",分析如下:
(1).首先建構函式的引數本身是一個字串,並不是正規表示式,在字串中點(.)並無特殊意義。
(2).對點(.)轉義後,依然是一個點(.)的本意。
(3).構造成正規表示式後,點(.)可以匹配除了回車符(\r)和換行符(\n)之外的任意字元。
程式碼最終修改如下:
[JavaScript] 純文字檢視 複製程式碼let dotReg = new RegExp("\\."); let dotStr = "abcdef."; dotStr.match(dotReg);
將轉義字元再次轉義,那麼最終傳遞到建構函式中,作為正規表示式的字串就是\.。
相關文章
- JavaScript建立正規表示式JavaScript
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- ## 建構函式函式
- 建構函式函式
- [譯] 建構函式已死,建構函式萬歲!函式
- 建構函式與解構函式函式
- c# tcbs之建構函式呼叫建構函式示例C#函式
- C++ 建構函式和解構函式C++函式
- 類的建構函式和解構函式函式
- JavaScript 建構函式JavaScript函式
- 建構函式、this、static函式
- C++ 類建構函式和解構函式C++函式
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C/C++——建構函式、複製建構函式和解構函式的執行時刻C++函式
- 磨練構建正規表示式模式的技能(轉)模式
- 建構函式建立物件函式物件
- JavaScript Date()建構函式JavaScript函式
- 11-建構函式函式
- 建構函式詳解函式
- javascript Function()建構函式JavaScriptFunction函式
- 【C++】建構函式C++函式
- C++建構函式C++函式
- 3.建構函式函式
- Java的建構函式Java函式
- 拷貝建構函式函式
- 建構函式的作用函式
- 初識建構函式函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 虛解構函式(√)、純虛解構函式(√)、虛建構函式(X)函式
- java中寫建構函式的另外一種方式Java函式
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- 建構函式與普通函式的區別函式
- C++再議建構函式及複製建構函式深度複製C++函式
- 關於建構函式與解構函式的分享函式
- C++入門記-建構函式和解構函式C++函式
- [C++]顯示呼叫建構函式和解構函式C++函式