在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 正則匹配中文問題

正則匹配中文問題

條件:匹配中英文加下劃線5-15位
var pattern = /^[u4E00-u9FA5A-Za-z0-9_]{5,15}$/; 大家覺得這個(gè)正則有問題嗎?問題是個(gè)別中文匹配不到呢
var str = "?地方aa123_";
pattern.test(str); //返回false

回答
編輯回答
安于心

有兩個(gè)問題:

  1. 你忘了加反斜杠了(或者是markdown給你搞沒了),應(yīng)該是這樣
var pattern = /^[\u4E00-\u9FA5A-Za-z0-9_]{5,15}$/;
  1. “?”(\u3DE3)這個(gè)字不在\u4E00-\u9FA5A范圍內(nèi)。
2017年12月9日 19:21
編輯回答
陌如玉

正確寫法應(yīng)該是

/^[A-Za-z0-9_\u4E00-\u9FA5]{5,15}$/

那個(gè)‘?’之所以匹配不了是因?yàn)樗膗nicode編碼為\u3de3
unicode編碼轉(zhuǎn)換工具

2018年5月18日 06:06
編輯回答
純妹

問題:
Unicode漢字編碼范圍u4E00-u9FA5
Unicode漢字編碼表
查詢了編碼表發(fā)現(xiàn)?(xing)字不在Unicode編碼范圍所以會返回false
unicode轉(zhuǎn)中文,中文轉(zhuǎn)unicode,參考@zifengb
修改后的正則表達(dá)式

var pattern = /^[\u4e00-\u9fa5\u3de3_a-zA-Z0-9]{5,15}$/; 
var str = "?地方aa123_"; 
str.match(pattern);
2017年7月14日 21:17