Foros del Web » Programando para Internet » Javascript »

Convertir \ en \\ en JavaScript

Estas en el tema de Convertir \ en \\ en JavaScript en el foro de Javascript en Foros del Web. Hola, tengo un <input type=file name=a1> en un formulario, y lo que quiero es reemplazar todas las diagonales invertidas (' \ ') por dos del ...
  #1 (permalink)  
Antiguo 14/05/2008, 11:46
Avatar de PPLPU  
Fecha de Ingreso: marzo-2008
Mensajes: 46
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Convertir \ en \\ en JavaScript

Hola, tengo un <input type=file name=a1> en un formulario, y lo que quiero es reemplazar todas las diagonales invertidas ('\') por dos del mismo tipo ('\\') en el contenido de éste. Ya lo intenté con el método replace de String, pero me devuelve error de página por ser un caracter de escape. ¿Algún consejo de cómo lo podría resolver?
Muchas gracias x ayudar
  #2 (permalink)  
Antiguo 14/05/2008, 11:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: Convertir \ en \\ en JavaScript

Has probado a ver si te vale la barra invertida codificada como "entitie" ?: &# 92; ( quitando el espacio)
  #3 (permalink)  
Antiguo 14/05/2008, 12:00
Avatar de PPLPU  
Fecha de Ingreso: marzo-2008
Mensajes: 46
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Convertir \ en \\ en JavaScript

oye a2a2 me podrías explicar un poco sobre cómo usar esto? es que no lo he usado
Gracias
  #4 (permalink)  
Antiguo 14/05/2008, 12:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: Convertir \ en \\ en JavaScript

Cualquier caracter se puede poner en HTML expresado como "entitie". El navegador cuando ve la entidad, la sustituye por el caracter correspondiente.
NOTA: los espacios despues del caracter '#' hay que quitarlos, los pongo para que el navegador no lo interprete y muestre el caracter correspondiente.
Por ejemplo, el caracter 'A' es: &# 65; , el caracter 'B' es: &# 66; , el caracter '\' es el &# 92;, etc.

Pues bien, no lo he probado, pero mi sugerencia era que en el replace, en lugar de poner el caracter '\' pongas la entidad &# 92;
  #5 (permalink)  
Antiguo 14/05/2008, 12:11
Avatar de PPLPU  
Fecha de Ingreso: marzo-2008
Mensajes: 46
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Convertir \ en \\ en JavaScript

Muy bien, entonces lo voy a probar así, y al rato te cuento que tal.
Y muchas gracias de nuevo
  #6 (permalink)  
Antiguo 14/05/2008, 12:30
Avatar de PPLPU  
Fecha de Ingreso: marzo-2008
Mensajes: 46
Antigüedad: 16 años, 1 mes
Puntos: 0
Información Re: Convertir \ en \\ en JavaScript

Ya lo probe y no funciona, escribo:

x1=texto.replace('&# 92','X');

ó

x1=texto.replace(&# 92,'X');

en ambos casos sin el espacio y no, en el 2º caso me marca error, creo que porque no le pongo las apóstrofes.
En el 1º lo toma literalmente como una cadena a reemplazar, hasta que encuentre esa cadena la sustituye por X.
¿Algún otro consejo? ¿No existe otra función que acepte las \ como cadena y no como caracter especial?
Incluso intenté hacer la sustitución en Java y pasa lo mismo por ser \, pero por eso quiero convertirlo en la página para enviarlo al servlet ya listo:

C:\\Directorio1\\Directorio2\\Archivo.txt
y así poderlo leer. Gracias x ayudar
  #7 (permalink)  
Antiguo 14/05/2008, 13:05
Avatar de PPLPU  
Fecha de Ingreso: marzo-2008
Mensajes: 46
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Convertir \ en \\ en JavaScript

Ya lo he solucionado, solo faltaba poner su equivalencia:

\\ = \
\\\\= \\
Cita:
<html>
<body>
<script>
function aa(texto){
var x1=texto.replace(/\\/g,'\\\\');
document.all.b.value=x1;
}
</script>
<input type=text name=a>
<input type=text name=b>
<input type=button name=p onClick='aa(document.all.a.value)' value='Aceptar'>
</body>
</html>
De esta forma, si la entrada es:
C:\Documents and Settings\Administrador\Mis documentos\Gen\index.html

La salida sería:
C:\\Documents and Settings\\Administrador\\Mis documentos\\Gen\\index.html

El /g que agrego al final de la cadena a buscar es solo para que reemplace en toda la cadena.
Gracias otra vez x ayudar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:07.