Re: [請益] PHP 如何限制 USER 僅能輸入中文

看板PHP作者 (凝視)時間17年前 (2009/01/15 13:20), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《Instance (呆呆華)》之銘言: : ※ 引述《cinsgreen (小綠)》之銘言: : : 各位板友好 : : 想請問 PHP 有辦法判斷 USER 輸入的字串是否為中文呢? : : 目前有的想法是將 USER 輸入的字串丟到陣列 : : 再一個一個比對 ASCII 碼來比對輸入的字串是否為英文 : : 想請教是否有更容易的作法 : : 謝謝 可以用 filter function http://www.php.net/manual/en/ref.filter.php 你需要的常數: FILTER_FLAG_STRIP_LOW (integer) Strip characters with ASCII value less than 32. FILTER_FLAG_STRIP_HIGH (integer) Strip characters with ASCII value greater than 127. FILTER_FLAG_ENCODE_LOW (integer) Encode characters with ASCII value less than 32. FILTER_FLAG_ENCODE_HIGH (integer) Encode characters with ASCII value greater than 127. 這樣會比你自己實做來得快。 : 常用的判斷格式的方法, : 參考看看吧!! : function check_data_format($str, $type) { : $chk = 0; : switch($type) { : case "account": //小寫英文,數子及_-.等符號 : $chk = preg_match("/^[a-z0-9_\-\.]{6,}$/", $str); : break; : case "password": //大小寫英文,數子及_-.等符號 : $chk = preg_match("/^[\w_\-\.]{6,}$/", $str); : break; : case "date": //日期 (Ex: 2009/1/1 or 2009-1-1) : $chk = preg_match("/^\d{4}[-\/]\d{1,2}[-\/]\d{1,2}$/", $str); : break; : case "email": //Mail : $chk = preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", : $str); : break; : case "url": //網址 : $chk = : preg_match("/^https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?$/", : $str); : break; : case "chinese": //中文但不支援標點符號s : $chk = preg_match("/^[\x{4e00}-\x{9fa5}]+$/u", $str); : break; : case "eng&num": //英數字 : $chk = preg_match("/^\w+$/", $res); : break; : } : if (!$chk) : retrun false; : else : return true; : } -- 凝視著,卻看不見光景。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.23.32.124

01/15 14:05, , 1F
這只有英文吧...
01/15 14:05, 1F

01/15 23:13, , 2F
除了那些字之外,不就是中文了嗎.. XD
01/15 23:13, 2F
※ 編輯: roga 來自: 220.130.223.207 (01/15 23:14)
文章代碼(AID): #19RiUgkU (PHP)
文章代碼(AID): #19RiUgkU (PHP)