Alfanümerik ve daha

3 Cevap

Yani bir kayıt sayfası tasarımı ve kullanıcı adınızı kontrol ediyorum alfanümerik olduğunu.

         else if(!eregi("^([0-9a-z])+$", $subuser)){
        $form->setError($field, "* Username not alphanumeric");

I use that to do so. Is there any way I can get that to include underscores (_), dash (-), and spaces? Thanks

3 Cevap

Sen kullanabilirsiniz:

else if(!eregi("^([0-9a-z_ -])+$", $subuser)){

Sen sadece bir underscore(_) eklemeniz gerekir hyphen (-) ve space( ) karakter sınıfına. Sadece üç tire karakter sınıfında özel bir anlamı var ama only eğer onun karakter her iki tarafı çevrili. Yani başında veya sonunda bunu ekleyebilirsiniz Bunu önlemek için. Ayrıca ortasına içerir ve kaçabilir.

Yani şu da geçerlidir:

else if(!eregi("^([-0-9a-z_ ])+$", $subuser)){
else if(!eregi("^([0-9a-z_\- ])+$", $subuser)){

bir standart düzenli ifade onay olduğu için preg_match sözdizimi kullanarak öğrenmek daha iyidir.

o ile bu gibi olmalıdır:

$bValid = preg_match("/^[\w\d-_]*$/", $sUsername);

tüy düzenli ifade onay okuma hakkında okumak için http://www.php.net/manual/en/intro.pcre.php

and for short comparison between preg_match and ereg see http://answers.yahoo.com/question/index?qid=20080327071915AAO0O2w

Bu gibi kullanabilirsiniz

if(!eregi("^([0-9a-z-_ ])+$", $subuser))

u bu aparatı gibi birçok özel karakter eklemek [0-9a-z-_ ] ama bazı (eğik çizgi) ile öncelenmesi ihtiyacı coz emin olabilirsiniz