18

特定のUTF-8入力(サーバー側)、たとえば東部言語を禁止したいのですが、入力例は「伊」である可能性があります。

ただし、ウェールズ語のŵやŷなど、他のラテン語または「ラテン語に似た」文字を引き続きサポートしたいので、latin-1との照合はできません

私のオプションは何ですか?(言語固有の場合、PHPを推奨)

どうもありがとう。


理由:多くの非西洋文字のブラウザサポートが欠落していることがよくあります(たとえば、別のブラウザでは上記の質問にボックスが表示されます)。したがって、表示名などの場合は、適切でない場合でも制限することが適切な場合があります。メッセージ本文

4

1 に答える 1

39

ただやる

preg_match('/[^\\p{Common}\\p{Latin}]/u', $string)

ここ$stringで、はUTF-8文字列です。ラテン文字以外の文字がある場合は「1」を返し、そうでない場合は「0」を返します。

例:

var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷaás??'));  //int(0)
var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷݤaás??')); //int(1)
于 2010-08-05T03:42:28.143 に答える