ホームページ  >  記事  >  バックエンド開発  >  中国語の文字を UTF-8 正規表現と照合する方法、utf-8 正規表現_PHP チュートリアル

中国語の文字を UTF-8 正規表現と照合する方法、utf-8 正規表現_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:45:071310ブラウズ

UTF-8 正規表現が中国語の文字と一致する方法、utf-8 正規表現

入力コンテンツに不正な文字が含まれているかどうかを確認するには、以下のコードを参照してください

リーリー

-------------------------------------

UTF-8 一致:
JavaScript では、文字列が中国語かどうかを判断するのは非常に簡単です。

例:

コードをコピーします コードは次のとおりです:
var str = "phpプログラミング";
if (/^[u4e00-u9fa5]+$/.test(str))

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


PHP では、x は 16 進数のデータを表すために使用されます。

それでは、次のコードに変換します:

コードをコピーします コードは次のとおりです: $str = "php プログラミング"; if (preg_match("/^[x4e00-x9fa5]+$/",$str))
{
print("この文字列はすべて中国語です"); }
else { print("この文字列はすべて中国語ではありません");
}


エラーは報告されていないようで、判定結果は正しいようですが、$strを「programming」という単語に置き換えても、結果は「文字列がすべて中国語ではありません」と表示されるようです。十分に正確ではありません。

重要:


「正規表現に精通した人」を調べたところ、[x4e00-x9fa5] については自分で詳細な説明を作成したことがわかりました PHP の正規表現では、[x4e00-x9fa5] は実際には文字と文字グループの概念です。ただし、hex は 1 ~ 2 桁または 4 桁になります。は 4 桁です。中括弧を追加する必要があります。

同時に、x{FF} より大きい 16 進数の場合は、u 修飾子と一緒に使用する必要があります。そうしないと、不正なエラーが発生します


インターネット上では、全角文字の一致に関する通常のルールは ^[x80-xff]*^/ のみです。中括弧を追加せずに中国語と一致させることもできます [u4e00-u9fa5] が、PHP ではサポートされていません。 x は 16 進数を表すため、システムデータが js で提供される x4e00 ~ x9fa5 の範囲と異なるのはなぜですか?

そこで、以下のコードに変更したところ、それが非常に正確であることがわかりました。

コードをコピーします

コードは次のとおりです: $str = "php プログラミング"; if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) { print("この文字列はすべて中国語です"); }
else { print("この文字列はすべて中国語ではありません");
}

PHP で UTF-8 エンコーディングで正規表現を使用して中国語の文字を照合する最終的な正しい表現はわかりました—/^[x{4e00}-x{9fa5}]+$/u を参照して、次のテスト コードを書きました。上記の記事(以下のコードをコピーして.phpファイルとして保存してください)

リーリー

GBK:

コードをコピーします

コードは次のとおりです:

preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str); //GB2312 漢字英数字下線正規表現 上記の内容は、PHP で漢字を UTF-8 正規表現と一致させる方法に関するものです。気に入っていただければ幸いです。

http://www.bkjia.com/PHPjc/1042689.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/1042689.html技術記事 UTF-8 正規表現は中国語の文字とどのように一致しますか? UTF-8 正規表現は、入力コンテンツに不正な文字が含まれているかどうかを判断します。次のコードを参照してください。 $str = "Programming";// if(!preg_match("/^[x{ 4e00} -x{9fa5...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。