2012-05-22 25 views
9

Tengo una cadena y debo arreglarla para adjuntarla a una consulta.reemplazando espacios en una cadena con guiones

Decir que tengo la cadena "Una Cesta para cada ocasión" y yo quiero que sea "A-Basket-A-Cada-ocasión"

Necesito encontrar un espacio y reemplazarlo con un guión. Entonces, necesito verificar si hay otro espacio en la cadena. Si no, devuelve la cadena fija. Si es así, ejecuta el mismo proceso nuevamente.

Suena como una función recursiva para mí, pero no estoy seguro de cómo configurarlo. Cualquier ayuda sería muy apreciada.

Respuesta

15

Puede utilizar un reemplazo de expresiones regulares de esta manera:

var str = "A Basket For Every Occasion"; 
str = str.replace(/\s/g, "-"); 

La "g" de la bandera en la expresión regular hará que todos los espacios que se reemplazan.


Es posible que desee colapsar múltiples espacios para un solo guión para que no terminen con varios guiones en una fila. Que se vería así:

var str = "A Basket For Every Occasion"; 
str = str.replace(/\s+/g, "-"); 
+0

perfecto gracias. aceptará en 8 minutos cuando me permita –

+0

@Tamil - No entiendo su comentario. Obviamente, el OP no sabía acerca del reemplazo global de regex, así que los educé sobre eso y les mostré cómo funciona, todo en el espíritu de SO y en beneficio de los futuros espectadores). Además, ofrecí una idea de mejora que evitaría múltiples guiones seguidos. ¿Cómo crees que esta pregunta debería haber sido respondida? – jfriend00

+0

@ jfriend00 Lo siento si hubiera puesto algo malo, pero podría haberle preguntado si hasta ahora había intentado algo con el mismo OP. De lo contrario, desde allí pensaría en TAN el siguiente momento que piensa en un problema en lugar de tratar de resolverlo. – Tamil

6

Uso reemplazar y encontrar por espacios en blanco \s global (indicador g)

var a = "asd asd sad".replace(/\s/g,"-"); 

a se convierte en

"asd-asd-sad" 
+1

upvoted. Gracias. jfriend respondió primero aunque –

4

Trate

value = value.split(' ').join('-'); 

I usado esto para g libero de mis espacios En lugar del guión lo hice vacío y funciona muy bien. También es todo JS. .split(limiter) eliminará el limitador y colocará los trozos de cuerda en una matriz (sin elementos limitantes), luego podrá unir la matriz con los guiones.

Cuestiones relacionadas