次の正規表現コードを使用しています。
^[a-z0-9_-]{3,15}$^
これをユーザー名の検証に使用しており、英数字、ピリオド-
、_
およびピリオドと一致させたいと考えています。
次の奇妙なことが起こります。
これは一致しません:
bla.b
しかし、それはこれに一致します:
bla.blabla
両方に一致するように、これを変更するにはどうすればよいですか? 最小文字と最大文字を自由に変更できるようにしたいと思います。(ところで、この正規表現にはもっと間違ったことがあります。これは私が偶然発見したものです)
更新: CakePHP の検証でこれを使用していることに言及する必要があります。これにより、エラーが発生します。
^[a-z0-9_.-]{3,15}$
これはエラーです:
Warning (2): preg_match() [function.preg-match]: No ending delimiter '^' found