2009-05-08 10 views

Respuesta

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

coincide con uno o más caracteres no a-z 0-9 [mayúsculas y minúsculas], o "" y reemplaza con ""

+0

¿Cómo puedo cambiar eso para permitir solo puntos (es decir)? –

+0

Ajustado para incluir también "." – gnarf

+1

No necesita escapar del punto dentro del juego de caracteres. – Gumbo

2
/[^a-z0-9.]/ 

debe hacer el truco

+0

¿Cómo puedo cambiar eso para permitir solo los puntos (es decir)? –

+0

@ Clic Votación hacia arriba: '[^.]' – Gumbo

+0

¿Desea ver la regla completa? No sé la sintaxis –

1

Probar:

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

/i representa mayúsculas y minúsculas (si lo necesita, por supuesto).

18

Me gusta usar [^ [: alnum:]] para esto, menos espacio para el error.

preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123' 
0

Esto también funciona para reemplazar cualquier cosa que no sea un dígito, un carácter de palabra o un punto con un guión bajo. Útil para nombres de archivo.

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