建構函式方式建立正規表示式
在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++ 建構函式和解構函式C++函式
- 類的建構函式和解構函式函式
- JavaScript 建構函式JavaScript函式
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 11-建構函式函式
- 初識建構函式函式
- JavaScript Date()建構函式JavaScript函式
- 建構函式建立物件函式物件
- 建構函式詳解函式
- 建構函式和類函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 建構函式與普通函式的區別函式
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- 關於建構函式與解構函式的分享函式
- C++入門記-建構函式和解構函式C++函式
- constructor 未指向建構函式Struct函式
- 回顧Javascript建構函式JavaScript函式
- JS 建構函式與類JS函式
- Dart建構函式介紹Dart函式
- Java建構函式詳解Java函式
- Java泛型建構函式Java泛型函式
- 預設建構函式和帶預設值的建構函式不能同時存在函式
- 建構函式、原型及原型鏈函式原型
- 建構函式之間的呼叫函式
- 繼承中的建構函式繼承函式
- 預設建構函式學習函式
- swoole 服務的建構函式函式
- EXTJS 建構函式帶引數JS函式
- 深入理解Thread建構函式thread函式
- C++複製建構函式C++函式
- Vue原始碼: 建構函式入口Vue原始碼函式
- 主建構函式有啥用函式