ホームページ  >  記事  >  バックエンド開発  >  PHP/JS 漢字正規表現まとめ_PHP チュートリアル

PHP/JS 漢字正規表現まとめ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:56:59786ブラウズ

php と js で中国語の文字を照合したい場合は、通常の /^[\x{4e00}-\x{9fa5}]+$/u を使用するだけで、2 バイト文字 (中国語の文字を含む) と照合できます。 : [^/ x00-/xff]、詳細は以下の通りです

jsバージョン

漢字に一致する正規表現: [/u4e00-/u9fa5]

全角文字(漢字を含む)の一致: [^/x00-/xff]

コードは次のとおりです コードをコピー


var reg = /^[u4e00-u9fa5]+$/;

if(reg.test(str))
{
alert('漢字を扱う');
}

文字列の長さを計算します(全角文字の長さを2、ASCII文字の長さを1として数えます)

String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}

phpバージョン

php の通常の中国語文字の一致
/^[x{4e00}-x{9fa5}]+$/u

もちろん、文字列をすべて中国語の文字にしたい場合、GBK2312 エンコード マッチングは次のようになります。
コードは次のとおりです コードをコピー

$action = トリム($_GET['action']);
if($action == "サブ")
{
$str = $_POST['dir']; //if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312 漢字数字の下線の正規表現
If(!preg_match("/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8 漢字英数字下線正規表現
{
echo "入力した [".$str."] には不正な文字が含まれています
}
それ以外
{
echo "入力した [".$str."] は完全に正当です。合格しました!"; }
}

コードは次のとおりです


実際、各コードの上位ビットと下位ビットの始まりと終わりを理解していれば、正規表現は自然に書くことができ、それは直接16桁です。何が難しいでしょうか?ふふ。ただし、php では、x は 16 桁を示すために使用されることに注意してください。

gbk、gb2312の例:

コードをコピー
$str = "小さな男の子";

if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str)){
print($str."確かに全部漢字です");
} その他 {
print($str."これは実際にはすべての漢字ではありません");
}

uft8 エンコーディング通常

$str = "漢字";

if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) {

print("この文字列はすべて中国語です");
} その他 {
print("この文字列はすべて中国語ではありません");
}

+$/u の意味:
コードは次のとおりです コードをコピー

$action = トリム($_GET['action']);
if($action == "サブ")
{
$str = $_POST['dir']
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312 漢字数字の下線の正規表現
If(!preg_match("/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8 漢字英数字下線正規表現
{
echo "入力した [".$str."] には不正な文字が含まれています"; }
その他
{
echo "入力した [".$str."] は完全に合法であり、合格しました!"; }
}
?>

+ は 1 回以上繰り返すことを意味します。 $ は末尾に一致することを意味します

/ は区切り文字を表します。 u はパターン文字列が UTF-8 として扱われることを示します。 U は、最初の一致後に検索を停止することを意味します。


2-4を一致させるには、{2, 4}を使用して表現します。
/^[x{4e00}-x{9fa5}]{2,4}$/u


http://www.bkjia.com/PHPjc/631567.htmlwww.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/631567.html技術記事中国語の文字を一致させたい場合は、php および js で通常の /^[\x{4e00}-\x{9fa5}]+$/u を使用するだけで、2 バイト文字 (中国語の文字を含む) を一致させることができます。 [^/x00 -/xff]、詳細は次のとおりです。js バージョンの一致...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。