Quiero eliminar todos los caracteres especiales excepto el espacio de una cadena usando JavaScript.
Por ejemplo,
abc's test#s
debería salir como
abcs tests
.
Quiero eliminar todos los caracteres especiales excepto el espacio de una cadena usando JavaScript.
Por ejemplo,
abc's test#s
debería salir como
abcs tests
.
Respuestas:
Debe usar la función de reemplazo de cadena, con una sola expresión regular. Asumiendo por caracteres especiales, quieres decir cualquier cosa que no sea letra, aquí hay una solución:
fuente
str.replace(/[^a-zA-Z0-9]/g, "")
str.replace(/[^a-zA-Z0-9 ]/g, "");
aviso, hay un espacio entre 0-9 y]Puede hacerlo especificando los caracteres que desea eliminar:
Alternativamente, para cambiar todos los caracteres excepto números y letras, intente:
fuente
/[^a-zA-Z0-9]/g
()
ywhitespaces
en cadena.text().replace(/[ ()]/g, '')
La primera solución no funciona para ningún alfabeto UTF-8. (Cortará texto como Привіт). He logrado crear una función que no utiliza RegExp y utiliza un buen soporte UTF-8 en el motor de JavaScript. La idea es simple si un símbolo es igual en mayúsculas y minúsculas, es un carácter especial. La única excepción se hace para los espacios en blanco.
Actualización: Tenga en cuenta que esta solución solo funciona para idiomas donde hay letras minúsculas y mayúsculas. En idiomas como el chino, esto no funcionará.
Actualización 2: llegué a la solución original cuando estaba trabajando en una búsqueda difusa. Si también está tratando de eliminar caracteres especiales para implementar la funcionalidad de búsqueda, existe un mejor enfoque. Use cualquier biblioteca de transliteración que produzca su cadena solo de caracteres latinos y luego el simple Regexp hará toda la magia de eliminar caracteres especiales. (Esto también funcionará para los chinos y también recibirá beneficios secundarios al hacer
Tromsø
==Tromso
).fuente
No conozco JavaScript, pero ¿no es posible usar regex?
Algo así
[^\w\d\s]
coincidirá con cualquier cosa menos dígitos, caracteres y espacios en blanco. Sería solo una pregunta para encontrar la sintaxis en JavaScript.fuente
Probé la solución muy creativa de Seagul, pero descubrí que trataba los números también como caracteres especiales, lo que no se ajustaba a mis necesidades. Así que aquí está mi ajuste (a prueba de fallos) de la solución de Seagul ...
fuente
reg
en su primera función.buscar todos los no (caracteres de palabras || espacio):
fuente
Intenta usar este
aquí ^ quilate es para negación \ w para caracteres de palabras [a-zA-Z0-9_] y \ s para espacio / [] / gi para global
fuente
El punto (.) no puede considerarse especial. He agregado una condición OR a la respuesta de Mozfet & Seagull:
fuente
fuente
Los caracteres especiales que desea eliminar de una cadena, prepare una lista de ellos y luego la función de reemplazo de JavaScript del usuario para eliminar todos los caracteres especiales.
o puede ejecutar el bucle para una cadena completa y comparar un solo carácter con el código ASCII y regenerar una nueva cadena.
fuente