Re: [請益] PHP 如何限制 USER 僅能輸入中文
※ 引述《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
01/15 23:13, 2F
※ 編輯: roga 來自: 220.130.223.207 (01/15 23:14)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
0
18