国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php/js漢字正則表達式總結

2024-09-04 11:47:12
字體:
來源:轉載
供稿:網友

如果我們要匹配中文漢字在php與js中只要利用正則/^[//x{4e00}-//x{9fa5}]+$/u,匹配雙字節字符(包括漢字在內):[^/x00-/xff]即可,具體如下

js版

匹配中文字符的正則表達式: [/u4e00-/u9fa5]

匹配雙字節字符(包括漢字在內):[^/x00-/xff]

實例代碼如下:

  1. var reg =  /^[u4e00-u9fa5]+$/; 
  2. if(reg.test(str)) 
  3.    alert('漢字的干活'); 
  4. 計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1) 
  5. String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;} 

php版

php正則匹配漢字!

/^[x{4e00}-x{9fa5}]+$/u

實例代碼如下:

  1. $action = trim($_GET['action']); 
  2. if($action == "sub"
  3.     $str = $_POST['dir'];   
  4.     //if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式 
  5.     if(!preg_match("/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u",$str))   //UTF-8漢字字母數字下劃線正則表達式 
  6.     {   
  7.         echo "您輸入的[".$str."]含有違法字符";   
  8.     } 
  9.     else 
  10.     { 
  11.         echo "您輸入的[".$str."]完全合法,通過!";   
  12.     } 

當然如果要想字符串全是漢字的GBK2312編碼匹配為:

  1. $str = "小小子"
  2. if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str)){ 
  3. print($str."確實全是漢字"); 
  4. else { 
  5. print($str."這個真 TMD不全是漢字"); 
  6. uft8編碼正則 
  7. $str = "漢字"
  8. if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) { 
  9. print("該字符串全部是中文"); 
  10. else { 
  11. print("該字符串不全部是中文"); 

其實只要了解了各個編碼的高位與低位的開始與結束,那么自然就可以寫出正則,而且直接是十六位的,有啥困難?呵呵。不過要注意,在php里面,表示十六位是用的x。

gbk,gb2312的例子:

  1. <?php 
  2. $action = trim($_GET['action']); 
  3. if($action == "sub"
  4.     $str = $_POST['dir'];     
  5.     //if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式  
  6.     if(!preg_match("/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u",$str))   //UTF-8漢字字母數字下劃線正則表達式 
  7.     {    
  8.          echo "<font color=red>您輸入的[".$str."]含有違法字符</font>";    
  9.      } 
  10.      else  
  11.      { 
  12.          echo "<font color=green>您輸入的[".$str."]完全合法,通過!</font>";    
  13.      } 
  14. ?> 

+$/u 的意思:

+ 表示重復1次或多次;

$ 表示匹配末尾;

/ 表示定界符;

u 表示模式字符串被當成 UTF-8;

U 表示第一次匹配后即停止搜索。

要匹配2-4 個,用{2,4}表示: /^[x{4e00}-x{9fa5}]{2,4}$/u

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 确山县| 香河县| 永平县| 确山县| 雅安市| 临沂市| 饶河县| 聊城市| 望奎县| 东莞市| 富源县| 镇宁| 偏关县| 尉氏县| 溧阳市| 崇明县| 梁河县| 靖安县| 杭锦旗| 九寨沟县| 乐清市| 河北省| 黑河市| 英山县| 东海县| 齐齐哈尔市| 乌兰察布市| 浏阳市| 夏邑县| 奎屯市| 昌邑市| 平邑县| 垣曲县| 台湾省| 靖西县| 东乌珠穆沁旗| 昆明市| 石柱| 井研县| 永登县| 宁城县|