1

少数の文字のみを許可するために使用したいpreg_match、より正確には、これらの文字のみを許可したい:a-z A-Z 0-9 . , ( ) @ # ! ?

preg_replaceテキストにこれらの文字を超える文字が含まれているかどうかを確認するには、どうすればよいですか?

4

2 に答える 2

2

指定した文字以外のすべての文字を文字列から削除する場合は、次を使用できます。

$sanitized = preg_replace('/[^a-zA-Z0-9\.\,\(\)@#!?]/', '', $string);
于 2013-06-02T11:46:06.783 に答える
2

文字列に無効な文字が含まれているかどうかをテストするには、次のようにします。

if ( preg_match('/[^a-zA-Z0-9.,()@#!?]/', $string) )
    echo 'At least ONE invalid character found!';

あなたが何を望んでいるのかよくわかりませんが、使用できる正規表現を次に示します。

if ( preg_match('/^[^a-zA-Z0-9.,()@#!?]+$/', $string) )
    echo 'All characters are invalid!';

if ( preg_match('/^[a-zA-Z0-9.,()@#!?]+$/', $string) )
    echo 'All characters are valid!';
于 2013-06-03T08:08:02.523 に答える