0

検証する HTML フォーム入力があります。入力には Unicode (ペルシア語) 文字のみを使用し、数字以外は使用しないでください。私はpreg_matchこのように使用しました:

preg_match('/^[آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئءًٌٍَُِّ\s]+$/u',$input);

localhostでは問題なく動作しますが、私のホスティングにはUnicodeサポートがインストールされたPCREがインストールされておらず、インストールを依頼するつもりはないので、これを達成するための別の方法を探しています.

preg_match()関数 を使用せずにユニコード入力を検証できる方法はありますか?

重複フラグ

重複フラグのおかげで、私は PCRE の「preg_match」方法を使用していません。リンクされた質問は、PCRE 'preg_match' 方法です。

4

1 に答える 1

1

PCRE がフラグ付きでコンパイルされていない場合に役立つ特定のマルチバイト関数がいくつかあります。PCRE_UTF8

mb_regex_encoding('UTF-8');
var_dump(mb_ereg('^[آ-یء\s]+$', "سلام پارسی تست می کنیم آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئًٌٍَُِّ"));
// int(1)

ここでآ-ی、文字範囲にはペルシャ語よりも多くの文字が含まれます (実際にはU+0622- U+06CC、対応するUnicode テーブルを見てください)。また、区切り文字が指定されていないことにも注意してください。

于 2016-08-12T10:31:43.447 に答える