中国語UTF-8またはGBK_PHPのPHP定期判定の考え方と具体的な実装チュートリアル

WBOY
リリース: 2016-07-13 17:17:49
オリジナル
910 人が閲覧しました

UTF-8 マッチング: JavaScript では、文字列が中国語かどうかを判断するのは非常に簡単です。例:

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

var str = "php programming";
if (/^[u4e00-u9fa5]+$/.test(str)) {
alert ("この文字はすべて中国語です");
}else{
alert("文字列はすべて中国語ではありません");
}
//php では、x は 16 進数のデータを表すために使用されます。したがって、次のコードに変換します:
$str = "php programming";
if (preg_match("/^[x4e00-x9fa5]+$/",$str)) {
print("この文字列はすべて含まれています中国語 ");
} else {
print("文字列がすべて中国語ではありません");
}

エラーは報告されておらず、判定結果は正しいようですが、$str を単語に置き換えてください「プログラミング」の結果ですが、やはり「文字列がすべて中国語ではありません」と表示されますが、この判断は十分正確ではないようです。重要: 「正規表現に精通している」を確認したところ、[x4e00-x9fa5] については、私自身が詳細な説明を作成しました。PHP の正規表現では、[x4e00-x9fa5] は実際には文字と文字グループの概念です。 16 進数を表します。16 進数は 1 ~ 2 桁または 4 桁ですが、4 桁の場合は同時に中括弧を追加する必要があります。x の 16 進数を表します。 {FF} は u 修飾子とともに使用する必要があります。そうしないと、不正なエラーが発生します。インターネット上には、全角文字を一致させるための通常のルール ^[x80-xff]*^/ しかありません。ここに中括弧を追加します。
[u4e00-u9fa5] 中国語と一致しますが、PHP ではサポートされていません。ただし、x で表される 16 進数のデータは、js で提供される x4e00-x9fa5 の範囲と異なるのはなぜでしょうか。そこで、以下のコードに変更したところ、それが非常に正確であることがわかりました。


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


PHP で UTF-8 エンコーディングで正規表現を使用して中国語の文字と一致させるための最終的な正しい表現を知っています—/^[x{4e00}-x{9fa5}]+$/u、

参照上記の記事に書き込むと以下のテストコードが書かれます(以下のコードをコピーして.phpファイルとして保存します)


コードをコピー コードは以下の通りです:
$アクション = トリム($_GET['アクション']);
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." ] 不正な文字が含まれています";
}
else
{
echo "入力した [".$str."] は完全に正当です";
}
}
?>



コードをコピー コードは次のとおりです:
文字(数字、文字、漢字、下線)を入力してください:





GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+ $/",$str); //GB2312 漢字英数字下線正規表現。

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

tru​​ehttp://www.bkjia.com/PHPjc/621720.html技術記事 UTF-8 マッチング: JavaScript では、文字列が中国語かどうかを判断するのは非常に簡単です。例: コードをコピーします。 コードは次のとおりです。 var str = "php programming" if (/^[u4e00-u9fa5]+$/.test(str)) {alert(...
)
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!