2009-05-08 12 views

risposta

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

Corrisponde a uno o più caratteri non a-z 0-9 [maiuscole/minuscole] o "." e sostituisce con ""

+0

Come posso cambiarlo per consentire solo i punti (vale a dire)? –

+0

Aggiustato per includere anche "." – gnarf

+1

Non è necessario sfuggire al punto all'interno del set di caratteri. – Gumbo

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

dovrebbe fare il trucco

+0

Come posso modificare quello per consentire solo punti (ad esempio)? –

+0

@ Click Upvote: '[^.]' – Gumbo

+0

Reg. Completo exp per favore? Non conosco la sintassi –

1

Prova:

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

/i sta per caso insensibilità (se ne avete bisogno, ovviamente).

18

Mi piace usare [^ [: alnum:]] per questo, meno spazio per errori.

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

Questo funziona anche per sostituire tutto ciò che non è una cifra, un carattere di parola o un punto con un carattere di sottolineatura. Utile per i nomi dei file.

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