正規表示式「 w」無法正常匹配中文

2022-05-21 21:06:13 字數 1315 閱讀 3579

使用regexp驗證表單中的「真實姓名」一欄時,出現『/w』無法滿足需求,固上網尋求解決方案。

採用來自的解決方案

匹配2~4個中文字元

"^[\u4e00-\u9fa5]$"

問題基本解決。

同時鏈結中有很多的拓展知識

\w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下:

匹配中文字元的正規表示式: [\u4e00-\u9fa5]

或許你也需要匹配雙位元組字元,中文也是雙位元組的字元

匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

注:可以用來計算字串的長度(乙個雙位元組字元長度計2,ascii字元計1)

英文本母:[a-za-z]

數字:[0-9]

匹配中文,英文本母和數字及_:

^[\u4e00-\u9fa5_a-za-z0-9]+$

同時判斷輸入長度:·

[\u4e00-\u9fa5_a-za-z0-9_]

^[\w\u4e00-\u9fa5\uf900-\ufa2d]*$

[\u4e00-\u9fa5_a-za-z0-9_]

^[\w\u4e00-\u9fa5\uf900-\ufa2d]*$

^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$

其中:

^ 與字串開始的地方匹配

(?!_)  不能以_開頭

(?!.*?_$)  不能以_結尾

[a-za-z0-9_\u4e00-\u9fa5]+  至少乙個漢字、數字、字母、下劃線

$  與字串結束的地方匹配

放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$"

(或者:@"^(?!_)\w*(?

^[a-za-z0-9_\u4e00-\u9fa5]+$

^\w+$

@"^[\u4e00-\u9fa5]$";

^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

正規表示式用於字串處理,表單驗證等場合,實用高效,但用到時總是不太把握,以致往往要上網查一番。遇到多多總結吧!

中文正規表示式匹配 正則中文匹配

這篇文章主要講如何使用正則 匹配中文字元,中文正規表示式的匹配規則不像其他正則規則一樣容易記住,下面一起看看這個中文正規表示式是怎麼樣的。w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是...

中文正規表示式匹配 正則中文匹配

這篇文章主要講如何使用正則匹配中文字元,中文正規表示式的匹配規則不像其他正則規則一樣容易記住,下面一起看看這個中文正規表示式是怎麼樣的。w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是雙...

正規表示式 w

不管是書本上還是網上的教程,在正規表示式中 w都被介紹為匹配任何單詞字元,包括字母和下劃線,等效於 a za z0 9 今天偶然間發現會員註冊中出現了乙個惡作劇賬號 dmin 注意到那個 了沒?那是乙個俄文本母,在會員註冊過濾中使用 w驗證並不能防止。也就是說 w包括了英文本母以及俄文本母等,在會員...