2017-02-11 9 views
1

私はpreg_replaceを使用して、自分のデータベースから来た姓と名前を検証しています。私がpreg_replaceを含まなければ、値は普通のように渡されますが、私がそれを使うと何も渡されません。ここに私の現在のコードは次のとおりです。PHP preg_replace削除する文字列をチェックしています

$firstname = preg_replace("/^[A-Za-z]+$/", "", $firstname); 
$lastname = preg_replace("/^[A-Za-z]+$/", "", $lastname); 

私は問題なく他の変数について同様の検証を使用しています、それは本当に唯一のこれらのために起こっています。私は検証にあまり慣れていないので、どんな助けもありがたいです。

+0

正規表現は名前を空に置き換えようとします。 – Mohammad

+0

あなたは何を達成しようとしていますか?英語のアルファベット以外の文字をすべて削除しようとしていますか?現在、文字列に英語のアルファベット文字のみが含まれている場合は、すべての文字を削除します。 – jkrnak

+0

私は大文字と小文字のみにしたいと思っています。 –

答えて

0

あなたは/[^A-Za-z]/正規表現を使用する必要があり、これはA-Z以外のすべてのフィルタリングとa-z

$string = '09test'; 
$new_string = preg_replace("/[^A-Za-z]/",'',$string); 
echo $new_string; //prints test 
+0

素晴らしい、それは私のために働いた。本当にありがとう。 –

0

/[^A-Za-z]/gをしてみます。最後にグローバル修飾子に注目してください。 https://regex101.com/にチェックを付けることができます。

しかし、私はあなたがヤーノシュであるわたしの名によって、たとえば、データを失うことはありませんが、あなたは代わりにJNOSヤーノシュを取得します。この場合、英語Transliterate any convertible utf8 char into ascii equivalent にあなたが英語以外の文字を翻字をお勧めします

関連する問題