簡單說一下正規表示式中新加入的特性:
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...