JavaScript中正則表達式兩種創建方式的區別

在 正則表達式基礎 這篇文章中,我們介紹過正則表達式的兩種創建方式:

1.字面量創建方式(兩個斜杆之間包起來的,都是用來描述規則的元字符)

let reg1 = /\d+/

2.構造函數模式創建  (兩個參數:元字符字符串,修飾字符串)

let reg2 = new RegExp("\\d+")

區別:

(1)構造函數因爲傳遞的是字符串,\需要寫兩個才表示\

reg = /\d+/g
reg = new RegExp("\\d+","g")

(2)兩個斜槓中間包起來的都是元字符,如果正則中包含某個變量的值,則不能使用字面量方式創建,需要使用構造函數模式

let type = "tanjia"
reg = /^@"+type+"@$/ 
console.log(reg.test("@tanjia@")) /* false */
console.log(reg.test('@""""typeeeeee"@')) /*true*/

這種情況只能使用構造函數方式,因爲它傳遞的規則是字符串,只有這樣才能進行字符串拼接

let type = "tanjia"
reg = new RegExp("^@"+ type +"@$")
console.log(reg.test("@tanjia@")) /* true */

 

另:常用的正則表達式文章:常用正則表達式

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