文字や数字だけでなく、「á」や「é」などの「特殊な」文字も入力できるようにしたいのですが、記号を使わないようにしたいと思います。 「!」、「@」、「%」など。
これを達成するために正規表現を書く方法はありますか?(できれば、それぞれの特殊文字を指定せずに。)
今私が持っています:
$reg = '/^[\w\-]*$/';
「単語文字」と見なされる文字は、ロケールによって異なります。これらの文字が自然なアルファベットで含まれるロケールを設定し/u
、次のように正規表現の修飾子を使用する必要があります。
$str = 'perché';
setlocale(LC_ALL, 'it_IT@euro');
echo preg_match('#^\w+$#u', $str);
この正規表現で試すことができます:
$reg = '~[^\\pL\d]+~u';
アクセントのあるキャラクターもキャッチ