ES6學習 正規表示式新特性

2021-07-09 20:40:29 字數 1478 閱讀 5031

簡單說一下正規表示式中新加入的特性:

1)flags屬性:

/abc/ig.flags//gi
2)/u unicode標記,chrome 48都還不支援這個標記

/\ud83d/.test('\ud83d\udc2a')//true

/\ud83d/u.test('\ud83d\udc2a')//false

/\ud83d/u.test('\ud83d \ud83d\udc2a')//true

/\ud83d/u.test('\ud83d\udc2a \ud83d')//true

/^[\ud83d\udc2a]$/u.test('\ud83d\udc2a')//true

/^[\ud83d\udc2a]$/.test('\ud83d\udc2a')//false

/^[\ud83d\udc2a]$/u.test('\ud83d')//false

/^[\ud83d\udc2a]$/.test('\ud83d')//true

'\ud83d\ude80'.match(/./gu).length//1

'\ud83d\ude80'.match(/./g).length//2

/\ud83d\ude80/u.test('\ud83d\ude80\ud83d\ude80')//true

/\ud83d\ude80/.test('\ud83d\ude80\ud83d\ude80')//false

/\ud83d\ude80/.test('\ud83d\ude80\ude80')//true

3)/y標記,看一下這個標記對一些函式的影響

這個標記的乙個用途就是用來分詞:

function tokenize(token_regex, str) 

return result;

}const token_gy = /\s*(\+|[0-9]+)\s*/gy;

const token_g = /\s*(\+|[0-9]+)\s*/g;

tokenize(token_gy, '3 + 4')//[ '3', '+', '4' ]

tokenize(token_g, '3 + 4')//[ '3', '+', '4' ]

tokenize(token_gy, '3x + 4')//[ '3' ]

tokenize(token_g, '3x + 4')//[ '3', '+', '4' ]

ES6學習 正規表示式

建構函式 y修飾符 u 修飾符 unicode匹配 console.log u 1 udb3d test udb3d udc2a true console.log u 1 udb3d u.test udb3d udc2a false unicode匹配,超過 個位元組了,加u,console.log...

es6正規表示式

在es5中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於 var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝。var r...

es6 遇到正規表示式

let evalexpr g let expr s s g 上面例項 中使用懶惰匹配的目的是,要找出字串中包含的所有的以 開頭,以 結尾的子字串,如果不是懶惰匹配那 會只返回乙個字串,舉例 let evlexpr g let evlexpr1 g let str for let i 0 i data...