javascript正則表達(dá)式處理中文和中文標(biāo)點(diǎn)符號(hào)的過程
1 背景
在日常的開發(fā)中,我們通常要對(duì)字符串做一些處理,通常的方法是使用正則匹配進(jìn)行篩選過濾,本文主要介紹使用javascript
和正則表達(dá)式處理中文字符串的過程。
2 使用
2.1 基礎(chǔ)知識(shí)
在處理之前我們先記住以下是中文和中文標(biāo)點(diǎn)符號(hào)使用的正則表達(dá)式;
- 1.中文字符的正則表達(dá)式
// 中文正則 \u4e00-\u9fa5
- 2.中文標(biāo)點(diǎn)符號(hào)正則:
// 中文標(biāo)點(diǎn)的正則 \u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e // 可以匹配以下中文標(biāo)點(diǎn)符號(hào)(順序是一一對(duì)應(yīng)的,第一個(gè)是句號(hào)) // 。 ? ! , 、 ; : “ ” ‘ ' ( ) 《 》 【 】 ~
- 3.正則符號(hào)
.:匹配任意單個(gè)字符。
[]:匹配方括號(hào)內(nèi)的任意一個(gè)字符。
\d:匹配任意數(shù)字。
\D:匹配任意非數(shù)字字符。
\w:匹配任意字母、數(shù)字或下劃線。
\W:匹配任意非字母、數(shù)字或下劃線。
\s:匹配任意空白字符(空格、制表符、換行符等)。
\S:匹配任意非空白字符。
^:匹配字符串的開頭。
$:匹配字符串的結(jié)尾。
.*:匹配零個(gè)或多個(gè)任意字符。
+:匹配一個(gè)或多個(gè)前面的字符。
*:匹配零個(gè)或多個(gè)前面的字符。
?:匹配零個(gè)或一個(gè)前面的字符。
{m}:匹配前面的字符恰好m次。
{n,}:匹配前面的字符至少出現(xiàn)n次,至多出現(xiàn)n次。
{n,m}:匹配前面的字符至少出現(xiàn)n次,至多出現(xiàn)m次。
管道符(|):表示或的關(guān)系,用于匹配多個(gè)條件中的任意一個(gè)。例如,/apple|banana|orange/ 表示匹配 apple、banana 或者 orange。
脫字符(^):如果方括號(hào)內(nèi)的第一個(gè)字符是[^],則表示除了字符類之中的字符,其他字符都可以匹配。比如,[^xyz]表示除了x、y、z之外都可以匹配。
連字符(-):對(duì)于連續(xù)序列的字符,連字符(-)用來提供簡寫形式,表示字符的連續(xù)范圍。比如,[abc]可以寫成[a-c],[0123456789]可以寫成[0-9],同理[A-Z]表示26個(gè)大寫字母。
2.2 應(yīng)用
比如我們要處理以下場景:
// 場景一:去掉“a我明wai天t上班”中的所有中文 let str = "a我明wai天t上班"; let result = str.replace(/[\u4e00-\u9fa5]/g, ''); console.log(result) //'await' // 場景二:將“黃鶴樓送孟浩然之廣陵【作者】李白 【朝代】唐~故人西辭黃鶴樓,煙花三月下?lián)P州。孤帆遠(yuǎn)影碧空盡,唯見長江天際流?!备鶕?jù)標(biāo)點(diǎn)符號(hào)拆分放入數(shù)組; let str = "黃鶴樓送孟浩然之廣陵【作者】李白 【朝代】唐~故人西辭黃鶴樓,煙花三月下?lián)P州。孤帆遠(yuǎn)影碧空盡,唯見長江天際流。"; let result = str.split(/[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e]/); console.log(result) // ['黃鶴樓送孟浩然之廣陵', '作者', '李白 ', '朝代', '唐', '故人西辭黃鶴樓', '煙花三月下?lián)P州', '孤帆遠(yuǎn)影碧空盡', '唯見長江天際流', '']
通常來講,一些簡單的中文字符串可以使用正則表達(dá)式處理,以上介紹一些簡單的入門用法,若象處理復(fù)雜的邏輯,不建議使用復(fù)雜的正則,建議使用函數(shù)處理,這樣可以增加代碼的可讀性。
3 常用正則表達(dá)式
國內(nèi)電話號(hào)碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7} 手機(jī)號(hào)碼:^[1]+[3-9]+\d{9}$" 國內(nèi)身份證號(hào):(^\d{18}$)|(^\d{15}$) 郵箱:^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([\w-]+\.)+[\w-]{2,4}$
JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
總結(jié)
到此這篇關(guān)于javascript正則表達(dá)式處理中文和中文標(biāo)點(diǎn)符號(hào)的文章就介紹到這了,更多相關(guān)正則處理中文和中文標(biāo)點(diǎn)符號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 正則表達(dá)式備忘單實(shí)例代碼
正則表達(dá)式或“regex”用于匹配字符串的各個(gè)部分,下面是我創(chuàng)建正則表達(dá)式的備忘單,需要的朋友可以參考下2019-04-04正則表達(dá)式 \D 元字符(等價(jià)于"[^0-9]")
\D元字符可以匹配非數(shù)字字符,等價(jià)于"[^0-9]"。這篇文章主要介紹了正則表達(dá)式 \D 元字符的相關(guān)資料,需要的朋友可以參考下2018-01-01java正則表達(dá)式獲取大括號(hào)小括號(hào)內(nèi)容并判斷數(shù)字和小數(shù)親測可用
這篇文章主要介紹了java正則表達(dá)式獲取大括號(hào)小括號(hào)內(nèi)容并判斷數(shù)字和小數(shù)親測可用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06好東西,老外用正則表達(dá)式寫的HTML分離函數(shù)
好東西,老外用正則表達(dá)式寫的HTML分離函數(shù)...2006-06-06JavaScript中正則表達(dá)式的概念與應(yīng)用
這篇文章主要介紹了JavaScript中正則表達(dá)式的概念與應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-10-10Java正則表達(dá)式實(shí)現(xiàn)經(jīng)緯度的合法性操作
這篇文章主要介紹了Java正則表達(dá)式實(shí)現(xiàn)經(jīng)緯度的合法性操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06javascript之正則表達(dá)式基礎(chǔ)知識(shí)小結(jié)
javascript之正則表達(dá)式基礎(chǔ)知識(shí)小結(jié),對(duì)于學(xué)習(xí)正則表達(dá)式的朋友是個(gè)不錯(cuò)的基礎(chǔ)入門資料。2010-04-04