溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用web正則表達(dá)式匹配字符串中漢字及中文標(biāo)點符號

發(fā)布時間:2022-07-27 09:25:19 來源:億速云 閱讀:240 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“如何用web正則表達(dá)式匹配字符串中漢字及中文標(biāo)點符號”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

問題:

在寫項目時遇到需要匹配字符串中所有的漢字并且包括簡單的中文標(biāo)點符號

比如:

匹配下面這個完成的字符串

let str = '上傳文件,你好呀,我很好';

網(wǎng)上能夠查到很多匹配漢字的正則

let reg = /[\u4e00-\u9fa5]+/g;

console.log(str.match(reg));
// 結(jié)果如下
['上傳文件', '你好呀', '我很好']

從結(jié)果可以看出上面寫的正則沒有匹配到標(biāo)點符號,,所以將完整的字符串(str)分隔開了

又從網(wǎng)上查找匹配中文標(biāo)點的正則

// 匹配中文標(biāo)點的正則
\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e

// 可以匹配以下中文標(biāo)點符號(順序是一一對應(yīng)的)
// `。 ? ! , 、 ; : “ ” ‘ ' ( ) 《 》 【 】 ~`

Ps:

如果上面沒有想要的標(biāo)點符號,可以上網(wǎng)查找將中文符號轉(zhuǎn)換成Unicode編碼添加在表達(dá)式中即可

將剛才編寫的正則表達(dá)式進(jìn)行下簡單的修改

let reg = /[(\u4e00-\u9fa5)(\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e)]+/g

console.log(str.match(reg));
// 打印結(jié)果
['上傳文件,你好呀,我很好']

可以看到這次結(jié)果是我們想要的形式,整個字符串都匹配到了~

補(bǔ)充:

Unicode 編碼并不只是為某個字符簡單定義了一個編碼,而且還將其進(jìn)行了歸類。 

\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用于 Unicode 正表達(dá)式的前綴。 

大寫 P 表示 Unicode 字符集七個字符屬性之一:標(biāo)點字符。 

其他六個是 

  • L:字母; 

  • M:標(biāo)記符號(一般不會單獨出現(xiàn)); 

  • Z:分隔符(比如空格、換行等); 

  • S:符號(比如數(shù)學(xué)符號、貨幣符號等); 

  • N:數(shù)字(比如阿拉伯?dāng)?shù)字、羅馬數(shù)字等); 

  • C:其他字符 

“如何用web正則表達(dá)式匹配字符串中漢字及中文標(biāo)點符號”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI