1

az からの文字のみを許可するために preg_match() を使用しようとしています。私はこの文字列を使用しています:

if (! preg_match('/[^a-z]/i', $name)) {
    echo 'Invalid characters in your name..';
    return false;
}

しかし、何らかの理由ですべての文字を許可しています。私は長い間それらの行に出演してきましたが、なぜ機能しないのかわかりません。

4

1 に答える 1

4

あなたのパターンは1文字しか検索しないため、文字列に無効な文字しか含まれていない場合、ほとんど毎回trueを返します。

パターンをこれに変更すると、起動して実行する必要があります

^[a-z]+$

大文字も許可したい場合

^[A-za-z]+$

そしておそらく数字

^[A-za-z0-9]+$

編集: 文字列をチェックしたい場合は<> 、使用できます

(<|>)

しかし、それはtrueを返します

于 2012-09-09T17:33:02.417 に答える