lisovaccaro
¿Cómo puedo eliminar todos los caracteres no alfanuméricos de una cadena en PHP?
Este es el código que estoy usando actualmente:
$url = preg_replace('/\s+/', '', $string);
Solo reemplaza los espacios en blanco.
Juan Conde
$url = preg_replace('/[^\da-z]/i', '', $string);
-
En caso de que alguien más se sintiera momentáneamente confundido por el comentario de Xeoncross a primera vista, su punto era que la respuesta no Admite caracteres Unicode. Pero la solución en el enlace de Xeoncross lo hace.
– orden
29 de septiembre de 2016 a las 4:57
Al principio, así es como lo haría.
$str="qwerty!@#$@#$^@#$Hello%#$";
$outcome = preg_replace("/[^a-zA-Z0-9]/", "", $str);
var_dump($outcome);
//string(11) "qwertyHello"
¡Espero que esto ayude!
No estoy seguro de por qué nadie más ha sugerido esto, pero parece ser la expresión regular más simple:
preg_replace("/\W|_/", "", $string)
También puedes verlo en acción aquí: http://phpfiddle.org/lite/code/0sg-314
-
Lo más sencillo y eficaz a la vez es
preg_replace("/[\W_]+/", "", $string)
.– Wiktor Stribiżew
26 de junio de 2016 a las 10:55
Puedes usar,
$url = preg_replace('/[^\da-z]/i', '', $string);
Puede usar para caracteres Unicode,
$url = preg_replace("/[^[:alnum:][:space:]]/u", '', $string);
preg_replace('/[\s\W]+/', '', $string)
Parece funcionar, en realidad el ejemplo estaba en la documentación de PHP en preg_replace
-
Tenga en cuenta que esto será mantener guiones bajos, ya que se consideran caracteres de palabras y también mantienen espacios
– Juan Condé
4 de julio de 2012 a las 0:43
-
No sabía sobre los guiones bajos, pero no guarda espacios.
– lisovaccaro
4 de julio de 2012 a las 2:08
Alix Axel
$alpha="0-9a-z"; // what to KEEP
$regex = sprintf('~[^%s]++~i', preg_quote($alpha, '~')); // case insensitive
$string = preg_replace($regex, '', $string);
-
Tenga en cuenta que esto será mantener guiones bajos, ya que se consideran caracteres de palabras y también mantienen espacios
– Juan Condé
4 de julio de 2012 a las 0:43
-
No sabía sobre los guiones bajos, pero no guarda espacios.
– lisovaccaro
4 de julio de 2012 a las 2:08
posible duplicado de ¿Cómo elimino caracteres no alfanuméricos en una cadena? (incluyendo ß, Ê, etc.)
– mario
4 de julio de 2012 a las 0:51
@mario: Eso es un poco diferente ya que se trata de Unicode. Estoy seguro de que existe un duplicado perfecto…
– Alix Axel
4 de julio de 2012 a las 0:57
posible duplicado de Eliminar caracteres no alfanuméricos
– Trejder
15 de enero de 2015 a las 13:04