2010-03-23 80 views
8

Quiero eliminar todos los caracteres no alfanuméricos y espaciales de una cadena. Entonces quiero que los espacios permanezcan. ¿Qué debo poner para un espacio en la función a continuación dentro de los corchetes []:¿Cómo eliminar todos los caracteres no alfanuméricos y sin espacio de una cadena en PHP?

ereg_replace("[^A-Za-z0-9]", "", $title); 

En otras palabras, ¿qué símbolo representa el espacio, sé \ n representa una nueva línea, se desprende dicho símbolo para una sola espacio.

Respuesta

25

Sólo hay que poner un espacio llano en su clase de caracteres:

[^A-Za-z0-9 ] 

Para otros caracteres de espacio en blanco (tabulador, saltos de línea, etc.) utilizan \s lugar.

También debe tener en cuenta que PHP’s POSIX ERE regular expression functions están en desuso y se eliminarán en PHP 6 a favor del PCRE regular expression functions. Así que recomiendo que uses preg_replace lugar:.

preg_replace("/[^A-Za-z0-9 ]/", "", $title) 
+0

respuesta realmente agradable. – Franz

+0

Estoy comentando simplemente para decir Props por publicar un ejemplo adecuado. La respuesta verificada verde anterior es técnicamente incorrecta. Debería ser: $ title = preg_replace ("/ [^ A-Za-z0-9] /", "", $ title) en lugar de simplemente: preg_replace ("/ [^ A-Za-z0-9] /" , "", $ title) aclarando que el método no reemplaza esa variable. –

2

Si desea que sólo un espacio literal, poner uno en el grupo de 'espacios en blanco' como ficha y saltos de línea es \ s

1

La respuesta aceptada hace no eliminar espacios

Considere lo siguiente

$string = 'tD 13827$2099'; 
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string); 

echo $string; 

> tD 138272099 

Ahora bien, si str_replace espacios, se obtiene el resultado deseado

$string = 'tD 13827$2099'; 
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string); 

// remove the spaces 
$string = str_replace(" ", "", $string); 

echo $string; 

> tD138272099 
+4

Esto es verdad. Debo extrañar algo ya que hay una respuesta aceptada. Estoy usando 'preg_replace ('/ [\ s \ W] + /'' y funciona como un amuleto: elimina los espacios alfanuméricos y los espacios. – Chords

+0

Sé que esto es antiguo, pero el autor no quiere eliminar . espacios "¿Cómo eliminar todos los caracteres no alfanuméricos y no espaciales de una cadena en PHP?" "¿Qué me pongo para un espacio en la función a continuación dentro de los corchetes []:" y más notablemente : "Así que quiero que los espacios permanezcan". Solo falta un "no" en la primera línea del texto. – travisnewman

Cuestiones relacionadas