漢字、文字、数字、アンダースコアの通常の組み合わせのみが許可されます
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> if(isset($_GET["username"])){ $username=$_GET["username"]; $str=mb_strlen($username); if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)." | a-z | 0-9 | A-Z| \_]+$/",$username) || $str<4 || $str>16) { echo "1"; } }
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> if(isset($_GET["username"])){ $username=$_GET["username"]; $str=mb_strlen($username); if(!preg_match("/(([\xB0-\xF7][\xA1-\xFE])|([\x81-\xA0][\x40-\xFE])|([\xAA-\xFE][\x40-\xA0])|(\w))+/",$username) || $str<4 || $str>16) { echo "1"; } }
$s ='私は ss です_文'; $p='/^[x{4e00}-x{9fa5}w]+$/u'; $bool=preg_match($p,$s); var_dump($bool); // 1 <br><font color="#e78608">------解決策------------------</font><br> これは gbk エンコーディングです<br>if(preg_match('/^(?:w|[x80-x9fxb0-xff].)+$/', $s))<br><br>utf-8 エンコーディングの場合 もっとシンプルに<br>if(preg_match('^w+$/u'))<br> <div class="clear"></div>