2010-12-30 14 views

Respuesta

174

La siguiente haría pero sólo sustituirá a una ocurrencia:

"string".replace('/', 'ForwardSlash'); 

Para un reemplazo global, o si lo prefiere expresiones regulares, sólo hay que escapar de la barra:

"string".replace(/\//g, 'ForwardSlash'); 
+3

El primer fragmento no hace un reemplazo global. No estoy muy seguro de cómo hacer un reemplazo global de la forma no regex. – BoltClock

+0

Ah, claro, no lo intenté con más que una barra. Se podría hacer con '" cadena ".replace ('/', 'ForwardSlash', 'g')' pero ese es un argumento no estándar que funciona solo en Firefox afaik. – Seldaek

+1

'" cadena ".replace (/ \ // g, 'ForwardSlash');' funciona pero elimina el/g de esto y no funciona. – johntrepreneur

22

Usa un literal de expresión regular con el modificador g, y escapa de la barra diagonal inversa con una barra invertida para que no entre en conflicto con los delimitadores.

var str = 'some // slashes', replacement = ''; 
var replaced = str.replace(/\//g, replacement); 
3

¿Esto es lo que quieres?

'string with/in it'.replace(/\//g, '\\'); 
8

Sin usar regex (aunque solo lo haría si la cadena de búsqueda es de entrada del usuario):

var str = 'Hello/ world/ this has two slashes!'; 
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!' 
0
var str = '/questions'; // input: "/questions" 
while(str.indexOf('/') != -1){ 
    str = str.replace('/', 'http://stackoverflow.com/'); 
} 
alert(str); // output: "http://stackoverflow.com/questions" 

La expresión regular propuesta /\//g no funcionó para mí; el resto de la línea (//g, replacement);) se comentó.

+1

Tenga en cuenta que no estoy seguro de cómo el rendimiento de esto compara la solución de división/combinación propuesta. –

+0

... se tropezó con esto ... prueba diferentes IDE usando resaltado de sintaxis más inteligente. No confíe en los colores de su editor de código, pero cree en el poder de los analizadores con estado que integran el código en tiempo de ejecución. – soletan

3

Esto me ha funcionado al convertir "//" en solo "/".

str.replace(/\/\//g, '/'); 
1

Hola una pequeña corrección en el guión anterior .. por encima de la escritura saltarse el primer carácter cuando se muestra la salida.

function stripSlashes(x) 
{ 
var y = ""; 
for(i = 0; i < x.length; i++) 
{ 
    if(x.charAt(i) == "/") 
    { 
     y += ""; 
    } 
    else 
    { 
     y+= x.charAt(i); 
    } 
} 
return y; 
} 
2

Debe ajustar la barra diagonal para evitar problemas con el navegador o // comentar.

str = 'this/that and/if'; 

var newstr = str.replace(/[/]/g, 'ForwardSlash'); 
Cuestiones relacionadas