PHP は、中国語の正規表現 (翻訳済み) の完全なコレクションであるかどうかを判断します。
PHP は中国語の正規表現 (翻訳) かどうかを判断します
http://www.cnblogs.com/DavidYan/articles/2032115.htmlから転載??
??
php は中国語の正規表現コレクションであるかどうかを判断します
?
$str="aaa";
if(!eregi("[^x80-xff]","$str"))
{
echo "はい";
}
他
{
echo "Not";
}
?>
$str = "中国";
echo $str;
echo "
";
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {
// GB2312
でのみ使用可能
if (preg_match("/^[x7f-xff]+$/", $str)) { //gb2312、utf-8 と互換性があります
echo "正しく入力してください";
} else {
echo "間違った入力";
}
?>
文字列に中国語の文字が含まれているかどうかを確認したい場合は、次のコードを使用してください:
if (preg_match("/[x7f-xff]/", $string)) {
echo "中国語があります";
}その他{
echo "中国語は禁止";
}
中国語の判断はエンコードに関連しています gbk は 2 バイト、utf8 は 3 バイトです。中国語の範囲に基づいて判断できます???
?
エンコード範囲 1.GBK
(GB2312/GB18030)???
x00-xff
GBK の 2 バイトエンコード範囲???
x20-x7f
アスキー???
xa1-xff
中国語???
x80-xff 中国語??
??
2.UTF-8
(ユニコード)???
u4e00-u9fa5
(中国語)???
x3130-x318F
(韓国語???
xAC00-xD7A3
(韓国語)???
u0800-u4e00
(日本語)???
ps:
韓国語は[u9fa5]より大きい文字です???
通常の例:???
preg_replace(”/([x80-xff])/”,””,$str);??
preg_replace(”/([u4e00-u9fa5])/”,””,$str);???
?
- //コンテンツに中国語が含まれているかどうかを判定 - GBK?(PHP)???? ??
- 関数 ?check_is_chinese( $s ){????? ??
- ???? 戻る ?preg_match( '/[x80-xff]./' 、? $s );?????? ??
- }????? ??
- ? ??
- //文字列の長さを取得します-GBK?(PHP)??? ??
- 関数 ?gb_strlen( $str ){????? ??
- ???? $count ?=?0;????? ??
- ???? 用 ( $i =0;? $i ストレン ( $str );? $i ++){???? ??
- ????????? $s ?=? 部分文字列 ( $str 、? $i ,?1);?????? ??
- ????????? 場合 ?(preg_match( "/[x80-xff]/" 、? $s ))?++ $i ;?????? ??
- ????????????++ $count ;?????? ??
- ??????}?????? ??
- ???? 戻る ? $count ;?????? ??
- }????? ??
- ? ??
- //インターセプト文字列 string-GBK?(PHP)??? ??
- 関数 ?gb_substr( $str 、? $len ){????? ??
- ???? $count ?=?0;????? ??
- ???? 用 ( $i =0;? $i ストレン ( $str );? $i ++){???? ??
- ????????? 場合 ( $count ?==? $len )? 休憩 ;?????? ??
- ????????? 場合 (preg_match( "/[x80-xff]/" 、? 部分文字列 ( $str 、? $i 、?1)))?++ $i ;?????? ??
- ????????????++ $count ;???????????? ??
- ??????}?????? ??
- ???? 戻る ? 部分文字列 ( $str ,?0,? $i );?????? ??
- }??????? ??
- ? ??
- //統計文字列の長さ-UTF8?(PHP)??? ??
- 関数 ?utf8_strlen( $str )?{???? ??
- ???? $count ?=?0;????? ??
- ???? 用 ( $i ?=?0;? $i ? ストレン ( $str );? $i ++){???? ??
- ????????? $value ?=?ord( $str [ $i ]);??????? ??
- ????????? 場合 ( $value ?>?127)?{????? ??
- ???????????? $count ++;?????? ??
- ???????????? 場合 ( $value ?>=?192?&&? $value ?<=?223)? $i ++;?????? ??
- ???????????? エルセイフ ( $value ?>=?224?&&? $value ?<=?239)? $i ?=? $i ?+?2;????? ??
- ???????????? エルセイフ ( $value ?>=?240?&&? $value ?<=?247)? $i ?=? $i ?+?3;????? ??
- ???????????? その他 ? 死ね ( 'UTF-8 と互換性のない文字列' );?????? ??
- ?????????}?????? ??
- ????????? $count ++;?????? ??
- ??????}?????? ??
- ???? 戻る ? $count ;?????? ??
- }??????? ??
- ? ??
- ? ??
- //截取字符串-UTF8(PHP)?????? ??
- 関数 ?utf8_substr( $str 、 $位置 、 $length ){????? ??
- ?????? $start_position ?=? ストレン ( $str );?????? ??
- ?????? $start_byte ?=?0;????? ??
- ?????? $end_position ?=? ストレン ( $str );?????? ??
- ?????? $count ?=?0;????? ??
- ?????? 用 ( $i ?=?0;? $i ? ストレン ( $str );? $i ++){????? ??
- ????????? 場合 ( $count ?>=? $位置 ?&&? $start_position ?>? $i ){????? ??
- ??????????????? $start_position ?=? $i ;?????? ??
- ??????????????? $start_byte ?=? $count ;?????? ??
- ?????????}?????? ??
- ????????? 場合 (( $count - $start_byte )>= $length )?{?????? ??
- ??????????????? $end_position ?=? $i ;?????? ??
- ??????????????? 休憩 ;?????? ??
- ?????????}????????? ??
- ????????? $value ?=?ord( $str [ $i ]);??????? ??
- ????????? 場合 ( $value ?>?127){????? ??
- ??????????????? $count ++;?????? ??
- ??????????????? 場合 ( $value ?>=?192?&&? $value ?<=?223)? $i ++;?????? ??
- ??????????????? エルセイフ ( $value ?>=?224?&&? $value ?<=?239)? $i ?=? $i ?+?2;????? ??
- ??????????????? エルセイフ ( $value ?>=?240?&&? $value ?<=?247)? $i ?=? $i ?+?3;????? ??
- ??????????????? その他 ? 死ね ( 'UTF-8 と互換性のない文字列' );?????? ??
- ?????????}?????? ??
- ????????? $count ++;?????? ??
- ? ??
- ?????}?????? ??
- ?????? 戻る ( 部分文字列 ( $str 、 $start_position 、 $end_position - $start_position ));?????? ??
- }????? ??
- ? ??
- // 判断の可否は有韩文-UTF-8?(JavaScript)?????? ??
- 関数 ?checkKoreaChar(str)?{????? ??
-
??????
用
(i=0;?i
- ????????? 場合 (((str.charCodeAt(i)?>?0x3130?&&?str.charCodeAt(i)?0x318F)?||?(str.charCodeAt(i)?>=?0xAC00? &&?str.charCodeAt(i)?<=?0xD7A3)))?{????? ??
- ??????????????? 戻る ?本当;????? ??
- ?????????}?????? ??
- ?????}?????? ??
- ?????? 戻る ?false;????? ??
- }????? ??
- ? ??
- // 判断有無中文字符-GBK?(JavaScript)?????? ??
- 関数 ?check_chinese_char(s){????? ??
- ?????? 戻る ?(s.length?!=?s.replace(/[^x00-xff]/g, 「**」 ).length);?????? ??
- }???
?
UTF-8適合:
JavaScript では、文字列が中国語かどうかを判断するのは非常に簡単です。例:
var str = "phpプログラミング";
if (/^[u4e00-u9fa5]+$/.test(str)) {
alert("この文字列はすべて中国語です");
}
それ以外{
alert("この文字列はすべて中国語ではありません");
}
PHP では、x は 16 進数のデータを表すために使用されます。したがって、次のコードに変換します:
$str = "php プログラミング";
if (preg_match("/^[x4e00-x9fa5]+$/",$str)) {
print("この文字列はすべて中国語です");
} else {
print("この文字列はすべて中国語ではありません");
}
エラーは報告されず、判定結果は正しいようですが、$str を「プログラミング」という単語に置き換えると、結果は依然として「文字列がすべて中国語ではありません」と表示されます。この判定は正確ではないようです。十分。
重要: 「正規表現に精通している」を確認したところ、[x4e00-x9fa5] については、私自身が詳細な説明を作成したことがわかりました
PHPの正規表現において、[x4e00-x9fa5]は実際には文字と文字グループの概念であり、x{hex}は16進数を表し、 16 進数は 1 ~ 2 桁または 4 桁にすることができますが、4 桁の場合は中括弧
を追加する必要があることに注意してください。同時に、16 進数が x{FF} より大きい場合は、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 -/^[x{4e00}-x{9fa5}]+$/u,
で UTF-8 エンコーディングで正規表現を使用して中国語の文字と一致させるための最終的な正しい表現を知っています。
上記の記事を参考に以下のテストコードを書きました(以下のコードをコピーして.phpファイルとして保存します)
$action = trim($_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 漢字英数字下線正規表現
???
{??
???????
エコー "<フォント
color=red>入力した [".$str."] には不正な文字が含まれています";??
???}
???それ以外
???{
???????
エコー "
???}
}
?>
<フォームメソッド="POST"
action="?action=sub">
入力文字(数字、文字、漢字、アンダースコア):
???
???
<入力タイプ="送信"
value="送信">
GBK:
preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str); //GB2312 漢字英数字下線正規表現
?
$str="aaa";
if(!eregi("[^x80-xff]","$str"))
{
echo "はい";
}
それ以外
{
echo "Not";
}
?>
$str = "中国";
echo $str;
echo "
";
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {
// GB2312
でのみ使用可能
if (preg_match("/^[x7f-xff]+$/", $str)) { //gb2312、utf-8 と互換性があります
echo "正しく入力してください";
} else {
echo "間違った入力";
}
?>
文字列に中国語の文字が含まれているかどうかを確認したい場合は、次のコードを使用してください:
if (preg_match("/[x7f-xff]/", $string)) {
echo "中国語があります";
}その他{
echo "中国語は禁止";
}
?
?
?
?
?

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Count 関数は、指定された範囲内の数値の数をカウントするために使用されます。テキスト、論理値、NULL 値は無視されますが、空のセルはカウントされます。Count 関数は、実際の数値を含むセルの数のみをカウントします。 CountA 関数は、指定された範囲内の空でないセルの数をカウントするために使用されます。実際の数値を含むセルを数えるだけでなく、テキスト、論理値、数式を含む空でないセルの数も数えます。

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

インターネットの発達や情報技術の進歩によりビッグデータの時代が到来し、データ分析や機械学習などの分野も広く活用されています。これらの分野では、タスクのスケジューリングは避けられない問題です。効率的なタスクのスケジューリングを実現する方法は、効率を向上させるために重要です。この記事では、Golang の Web フレームワーク Echo フレームワークを使用して分散タスク スケジューリングを実装する方法を紹介します。 1. Echo フレームワークの概要 Echo は、高性能、スケーラブル、軽量の GoWeb フレームワークです。 HTTPに基づいています

Laravel は、拡張性と効率性に優れた人気の PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築できる強力なツールとライブラリを多数提供しています。その中でも、LaravelEcho と Pusher は、WebSocket 通信を簡単に実装できる 2 つの非常に重要なツールであり、この記事では、Laravel アプリケーションでこれら 2 つのツールを使用する方法について詳しく説明します。 WebSocket とは何ですか? Webソケット

PHP における echo キーワードの役割と使用法の詳細な説明 PHP は、Web 開発で広く使用されているサーバーサイド スクリプト言語です。 echo キーワードは、PHP でコンテンツを出力するために使用されるメソッドです。この記事では、echoキーワードの機能と使い方を詳しく紹介します。機能: echo キーワードの主な機能は、コンテンツをブラウザに出力することです。 Web 開発では、フロントエンド ページにデータを動的に表示する必要がありますが、このとき、echo キーワードを使用してデータをページに出力できます。 e

Go 言語は、高速で効率的なプログラミング言語として、常にプログラマーに好まれてきました。 Go 言語エコシステムでは、フレームワークは、開発者がアプリケーションをより迅速に構築できるようにする上で重要な役割を果たします。この記事では、Go 言語のフレームワークを 5 つ紹介し、それぞれの特徴と使い方を理解します。 1. Gin フレームワーク Gin フレームワークは、高速で高性能な特性を備えた軽量の Web フレームワークです。 Jin フレームワークを使用して、RESTful API と Web アプリケーションを迅速に構築します。簡単なコード例を次に示します。

現在最も人気のある Go フレームワークは次のとおりです。 Gin: 軽量で高性能な Web フレームワークで、シンプルで使いやすいです。 Echo: 高性能のルーティングとミドルウェアを提供する、高速で高度にカスタマイズ可能な Web フレームワーク。 GorillaMux: 高度なルーティング構成オプションを提供する高速で柔軟なマルチプレクサー。 Fiber: 大量の同時リクエストを処理する、パフォーマンスが最適化された高性能 Web フレームワーク。 Martini: 豊富な機能セットを提供するオブジェクト指向設計のモジュール式 Web フレームワーク。
