Ne bu regexp ile yanlış? Ben $ isim sadece harf-sayı yapmak gerekir. Şimdi tüm çalışma gibi görünüyor doens't.
if (!preg_match("/^[A-Za-z0-9]$/",$name)) {
$e[]="name must contain only letters or numbers";
}
Düzenli ifade sadece tek bir karakteri tarif etmez. Izin vermek için bir quantifier + gibi kullanımı Ya [A-Za-z0-9], bir ya da daha fazla kez tekrar edilmektedir:
if (!preg_match("/^[A-Za-z0-9]+$/",$name))
Ya da ifadeyi ters ve alfanümerik olmayan karakterleri aramak ([^A-Za-z0-9] tamamlayıcısıdır [A-Za-z0-9]) yapabilirsiniz:
if (preg_match("/[^A-Za-z0-9]/",$name))
Regexes yükü olmadan istediğinizi yapacak olan diğer fonksiyonlara bakmak unutmayın. Bu durumda, ctype_alnum a> kullanabilirsiniz.
Tam sizin ifade ne zaman bilmiyorum, bazen bir araç ile test etmek olur. Belki deneyebilirsiniz Regex Coach: http://www.weitz.de/regex-coach/ :)