[請益] 判別字串中的字元是英文還是中文?

看板PHP作者 (ppppk)時間12年前 (2013/09/13 15:04), 編輯推噓3(306)
留言9則, 6人參與, 最新討論串1/1
我的網頁用utf-8 會需要判別字串中的字元是英文還是中文 然後可能有不同的處裡 (只需判別utf-8編碼是1-byte還是2-byte以上就可以) 不知道php mbstring function有沒有可用的function? 還是有什麼簡便的方法? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.79.151.242

09/13 15:09, , 1F
判斷英文可以用regexp /^[A-Za-z]*$/
09/13 15:09, 1F

09/13 15:10, , 2F
判斷中文就比較難了...
09/13 15:10, 2F

09/13 15:18, , 3F
preg_match_all('@(.)@u',$str,$m)
09/13 15:18, 3F

09/13 15:36, , 4F
中文可以google找utf-8中文範圍
09/13 15:36, 4F

09/13 17:09, , 5F
那日文呢?
09/13 17:09, 5F

09/13 18:03, , 6F
mb_strlen($str, 'UTF-8') == strlen(str)
09/13 18:03, 6F

09/13 18:04, , 7F
如果是純ascii這兩個會相等。
09/13 18:04, 7F

09/16 02:35, , 8F
對吼,原po有說只要判別 byte 數就好,所以其實不需要
09/16 02:35, 8F

09/16 02:35, , 9F
列出所有中文的範圍 XD
09/16 02:35, 9F
文章代碼(AID): #1IChZr-3 (PHP)
文章代碼(AID): #1IChZr-3 (PHP)