ホームページ  >  記事  >  バックエンド開発  >  漢字、文字、数字、ストップダッシュの組み合わせのみを許可する通常のルール

漢字、文字、数字、ストップダッシュの組み合わせのみを許可する通常のルール

WBOY
WBOYオリジナル
2016-06-13 13:26:501543ブラウズ

漢字、文字、数字、アンダースコアの通常の組み合わせのみが許可されます

PHP コード
<!--

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"; 
    }
    }


上記の検証では中国語の句読点、スペース、その他の特殊文字はブロックできません
PHP コード
<!--

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"; 
    } 
    }


上記の検証では、中国語と中国語の句読点の組み合わせをブロックできません。ここでの中国語の文字は、漢字、文字、数字、アンダースコアの組み合わせのみを指します。純粋な中国語の文字。中国語の句読点やスペースなどの特殊文字は含まれません。



-----解決策---------
PHP コード
$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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。