目前有乙個提案,引入了一種新的類的寫法 \p 和\p,允許正規表示式匹配符合 unicode 某種屬性的所有字元。
const regexgreeksymbol = /\p/u;
regexgreeksymbol.test('π') // true
上面**中,\p 指定匹配乙個希臘字母,所以匹配 π 成功
unicode 屬性累要指定屬性名和屬性值。
\p
對於某些屬性,可以只寫屬性名。
\p
\p 是 \p 的反向匹配,即匹配不滿足條件的字元。
這兩種類只對 unicode 有效,所以使用的時候一定要加上 u 修飾符。如果不加 u 修飾符,正規表示式使用 \p 和 \p 會報錯,ecmascript 預留了這兩個類。
由於 unicode 的各種屬性非常多,所以這種新的類的表達能力非常強。
const regex = /^\p+$/u;
regex.test('123456789') // true
上面**中,屬性類指定匹配所有十進位制字元,可以看到各種字型的十進位制字元都會匹配成功。
\p甚至能匹配羅馬數字。
// 匹配所有數字
const regex = /^\p+$/u;
regex.test('²³¹¼½¾') // true
regex.test('㉛㉜㉝') // true
regex.test('ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻ') // true
下面是其他一些例子。
// 匹配各種文字的所有字母,等同於 unicode 版的 \w
[\p\p\p\p\p]
// 匹配各種文字的所有非字母的字元,等同於 unicode 版的 \w
[^\p\p\p\p\p]
// 匹配所有的箭頭字元
const regexarrows = /^\p+$/u;
regexarrows.test('←↑→↓↔↕↖↗↘↙⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇧⇩') // true
具名組匹配
ES6 正則的擴充套件
一,regexp 建構函式 es5中,regexp建構函式的引數有兩種情況。1,引數是字串,第二個引數表示正規表示式的修飾符 flag 2,引數是乙個正規表示式,返回乙個原有正規表示式的拷貝。es6中,如果regexp建構函式第乙個引數是乙個正則物件,那麼可以使用第二個引數指定修飾符。而且,返回的正...
ES6精華 正則擴充套件
本篇概括了es6中正規表示式新增部分的精華要點 最好有es5的基礎 使正則處於unicode模式。關於es6的字元擴充套件知識,可檢視這裡。處於unicode模式下的正則,可以正確識別32位 四位元組 字元。let c ud83d udc2a 32位字元 console.log s test c f...
es6 語法 (正則擴充套件)
es5中常見修飾符是g i es6中新增 y,u exec 方法用於檢索字串中的正規表示式的匹配。test a false console.log u u.test a true 加上u才能被識別 console.log u let s console.log u test s false cons...