PHP bir dizeden alfanümerik karakter ama her şeyi sıyırma

5 Cevap php

Ben bir dizeden alfanümerik karakterden (a-z ve 0-9) hariç her şeyi değiştirebilirsiniz regexpi veya diğer dize istiyorum. Böyle ,@#$(@*810 gibi her şey atılmalı. Herhangi bir fikir?

Düzenleme: Ben artık her şeyi striptiz ama noktaları sağlamak için bu gerekiyor, ama her şey a-z, 1-9, .. Fikirler?

5 Cevap

$string = preg_replace("/[^a-z0-9.]+/i", "", $string);

[Harf duyarsız] 0-9: az, ya da bir veya daha fazla karakterle eşleşir "." ve "" ile değiştirir

Ben [[^: alnum:]] gibi kullanarak hata için bu için, daha az oda.

preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'
/[^a-z0-9.]/

hile yapmak gerekir

Deneyin:

$string = preg_replace ('/[^a-z0-9]/i', '', $string);

(Tabii, gerekirse) / i dava açtıkları için duruyor.

Bu da bir şey değil, bir rakam, bir kelime karakter, ya da bir çizgi ile bir süre değiştirmek için çalışır. Dosya için yararlı.

$clean = preg_replace('/[^\d\w.]+/', '_', $string);