英語以外のすべての文字をキャッチする簡単な正規表現はありますか?共通の区切り記号や記号を使用する必要がありますが、ロシア語、日本語などの特殊文字は使用できません。正規表現で英語以外の文字を拒否しますか?
PHPで動作するものを探しています。
英語以外のすべての文字をキャッチする簡単な正規表現はありますか?共通の区切り記号や記号を使用する必要がありますが、ロシア語、日本語などの特殊文字は使用できません。正規表現で英語以外の文字を拒否しますか?
PHPで動作するものを探しています。
このQ/Aは、それを処理するように見えた:PHP Validate string characters are UK or US Keyboard characters
あなたのコメントにあなたのアドレスを参照するので、彼らはあまりにも数字が含まれる場合があります。したがって:
preg_replace('/[^[:alpha:][:punct:][:digit:]]/u', utf8_encode($input), '');
不要な文字を置き換える必要があります。 [:alpha:]
クラスは、ロケールが正しく設定されている場合にのみ機能します。たとえば、de_DE
に設定されている場合、「a」から「z」までの文字だけでなく、「ä」、「ö」、「è」などの「外来語」も考慮されます。
また、「ロシア語、日本語など」は望ましくないため、u
修飾語に注意してください。入力を中断せず、間違った結果を出すには、入力をUTF-8でエンコードする必要があります。
hex codesを使用してください。 ASCII以外の文字や行末をすべて消去し、スペースで置き換えます。スペース(\x20
)を意図的に範囲外にして、スペースや特殊文字の連続実行を1つのスペースに置き換えます。
$clean = trim(preg_replace('/[^\x21-\x7E]+/', ' ', $input));
if (strlen($str) == strlen(utf8_decode($str))) {
}
実際に問題がどのように解決されているかわかりません。いくつかの説明はすてきだったでしょう。 –
なぜあなたはすべてのpunctuation‽は、あなたが本当にASCII文字への入力を制限するために欠けている英語の文字に制限はなく、できるように欠けていますか? –
おそらくhttp://stackoverflow.com/questions/4619603/php-validate-string-characters-are-uk-or-us-keyboard-characters/4619747に関連しています –
@Anon - 名前と住所にはアポストロフィ、コンマ、期間など、データがすべて英語になるようにデータを正規化したい。 –