Tengo cadenas con espacios en blanco adicionales, cada vez que hay más de un espacio en blanco me gustaría que fuera solo uno.
¿Nadie? Intenté buscar en google, pero nada funcionó para mí.
Gracias
javascript
string
trim
víspera
fuente
fuente
Respuestas:
Algo como esto:
fuente
Puede aumentar String para implementar estos comportamientos como métodos, como en:
Esto ahora le permite utilizar las siguientes formas elegantes para producir las cadenas que desee:
fuente
El uso de una expresión regular con la función de reemplazo hace el truco:
fuente
Aquí hay una solución no regex (solo por diversión):
Divide la cadena en espacios en blanco , elimina todos los elementos de la matriz vacíos de la matriz (los que tenían más de un solo espacio) y une todas las palabras nuevamente en una cadena, con un solo espacio en blanco entre ellas.
fuente
Supongo que está buscando eliminar espacios desde el principio y / o el final de la cadena (en lugar de eliminar todos los espacios?
Si ese es el caso, necesitará una expresión regular como esta:
Esto eliminará todos los espacios desde el principio o el final de la cadena. Si solo desea recortar espacios desde el final, la expresión regular se vería así:
Espero que ayude.
fuente
''
lugar de' '
.jQuery.trim () funciona bien.
http://api.jquery.com/jQuery.trim/
fuente
Sé que no debería tener nigromancia en un tema, pero dados los detalles de la pregunta, generalmente lo amplío para que signifique:
Para esto, uso un código como este (el paréntesis en la primera expresión regular está ahí solo para hacer que el código sea un poco más legible ... las expresiones regulares pueden ser un dolor a menos que esté familiarizado con ellas):
La razón por la que esto funciona es que los métodos en String-object devuelven un objeto de cadena en el que puede invocar otro método (al igual que jQuery y algunas otras bibliotecas). Una forma mucho más compacta de codificar si desea ejecutar varios métodos en un solo objeto en sucesión.
fuente
var x = "Prueba Prueba Prueba" .split ("") .join (""); alerta (x);
fuente
Prueba esto.
el resultado será
Lo que sucedió aquí es que primero recortará los espacios exteriores usando y
trim()
luego recortará los espacios interiores usando.replace(/\s+/g, ' ')
.fuente
Si desea restringir al usuario para que dé espacio en blanco en el nombre, simplemente cree una instrucción if y proporcione la condición. como yo lo hice:
fuente
¿Que tal este?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
salidas
"my test string with crazy stuff is cool "
Este también elimina las pestañas
fuente
\s
. Regex innecesariamente complejo, bien podría escribir/\s+/g
.