Doğru Cevap
-
İkinci z büyük olacak...
Şöyle yani:
preg_replace("#[^a-zA-Z0-9]*#", "", $string);
A-z yazarsan bu şu demek: A (ASCII değeri 65) ile z (ASCII değeri 122) arasında kalan tüm karakterler. ` işaretinin ASCII kodu 96 olduğu için o da dahil olur otomatikman.
Ek bilgi: * yerine + kullanmak isteyebilirsin, böylece tekrar eden boşluk karakterleri de gider...-
jason-mccreary
Helal olsun diyorum nası gördün z'yi yaa :)13 yıl önce yazılmış -
eugene
of ya nefret ediyorum şu harf hatalarından... sağol...13 yıl önce yazılmış
-
Cevaplar
-
Sanırım *'a gerek yok. Ayrıca W kullanarak kodu basitleştirebilirsin:
$string = preg_replace("/[\W]/", "", $string);
Ek olarak ctype_alnum diye bi fonk. var, regex'ten daha hızlı çalışır...-
DarkElder
w tanımlaması ilave olarak _ karakterini de içermektedir. Dolayısıyla tam olarak istediği değeri döndürmez.
$string = "AZ_09"; echo preg_replace( "/[\W]/", "", $string );
13 yıl önce yazılmış
-
-
preg_replace("#[^a-zA-Z0-9]*#ui","",$string);
şeklinde kullanırsan sanırım sorunun "ui" u=unicode i=incasesensitive olarak tanımlarsan sorun bundan kaynaklanıyor olabilir.