正則表達(dá)式u修飾符(支持UTF-16編碼)
正則表達(dá)式u修飾符:
此修飾符標(biāo)識(shí)能夠正確處理大于\uFFFF的Unicode字符。
也就是說(shuō),會(huì)正確處理四個(gè)字節(jié)的UTF-16編碼。
此修飾符是ES2015新增,更多正則表達(dá)式新特性可以參閱ES2015 正則表達(dá)式新增特性一章節(jié)。
更多正則表達(dá)式教程可以參閱正則表達(dá)式教程板塊。
代碼實(shí)例:
console.log(/^\uD842/u.test("\uD842\uDFB7"))
輸出false,由于"\uD842\uDFB7"是一個(gè)四個(gè)字節(jié)的UTF-16編碼,代表一個(gè)字符,所以如果正則表達(dá)式帶有u修飾符,那么就能夠識(shí)別它。
console.log(/^\uD842/.test("\uD842\uDFB7"))
輸出true;不加u修飾符,那么就無(wú)法將四個(gè)字節(jié)的UTF-16編碼識(shí)別為一個(gè)字符,所以就可以產(chǎn)生匹配。
/^.$/.test("\uD842\uDFB7")//false /^.$/u.test("\uD842\uDFB7")//true
關(guān)于元字符點(diǎn)(.)的用法可以參閱正則表達(dá)式.號(hào)元字符一章節(jié)。
/^.$/.test("\uD842\uDFB7")//false /^.$/u.test("\uD842\uDFB7")//true
添加u修飾符之后,點(diǎn)元字符就可以匹配碼點(diǎn)大于0xFFFF的Unicode字符。
/ \u{61} /.test("a")//false / \u{61} / u.test("a")//true
使用u修飾符,正則表達(dá)式能夠識(shí)別大括號(hào){}表示的Unicode字符,否則無(wú)法識(shí)別,{61}也會(huì)被解讀為量詞,表示61個(gè)u字符。
關(guān)于大括號(hào)表示的Unicode字符可以參閱ES2015 字符串新增特性一章節(jié)。
相關(guān)文章
UBB 轉(zhuǎn)換函數(shù)演示 (經(jīng)典論壇)
[綠色]UBB 轉(zhuǎn)換函數(shù)演示 (經(jīng)典論壇)...2006-08-08談?wù)勎覍?duì)正則表達(dá)式的認(rèn)識(shí)
正則表達(dá)式(Regular Expression)是一個(gè)概念,一種語(yǔ)法、句法的約定。每一種具體的語(yǔ)句(C#,Java,JavaScript)有其對(duì)于正則表達(dá)式的具體實(shí)現(xiàn),并且會(huì)有差別。正則表達(dá)式30分鐘入門教程講述的是.net(C#)的正則表達(dá)式2014-02-02用JavaScript實(shí)現(xiàn)全局替換,解決$等特殊符號(hào)的難題[
用JavaScript實(shí)現(xiàn)全局替換,解決$等特殊符號(hào)的難題[...2006-12-12