Foros del Web » Programando para Internet » Javascript »

Cambiar signo + por un espacio?

Estas en el tema de Cambiar signo + por un espacio? en el foro de Javascript en Foros del Web. Hola mucho gusto a todos en foros del web, desde ya gracias por cualquier ayuda que puedan ofrecerme. Tengo un código js, que fue extraído ...
  #1 (permalink)  
Antiguo 08/09/2011, 22:45
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Cambiar signo + por un espacio?

Hola mucho gusto a todos en foros del web, desde ya gracias por cualquier ayuda que puedan ofrecerme.

Tengo un código js, que fue extraído de esta web:

http://www.htmlgoodies.com/beyond/javascript/article.php/3471111

Lo que hace es pasar el texto de un input hacia otro que este en una página distinta; y ademas de pasarlo a otro input lo muestra en pantalla, asi yo puedo hacer algo como esto:





El problema que tengo es que como ven en la imagen 2 los espacios los sustituye con un signo +,

mi consulta es entonces como puedo hacer que se mantengan los espacios entre las palabras

El autor del script menciona sobre los espacios:
"Also, the method I have written here isn't very friendly to spaces. If the user puts a space in either of their two text boxes, that space will be replaced by a plus sign. If you're going to accept spaces, you'll either have to live with that or write some extra code to eliminate it."

Entonces se pueden eliminar segun el, pero no se como.


El código en si que ya me estaba tardando en ponerlo:

Código PHP:
<SCRIPT language="JavaScript" type="text/javascript"
 
<!-- 
Begin
function convertSpaces(str) {
var 
out ""flag 0;
for (
0str.lengthi++) {
if (
str.charAt(i) != "+") {
out += str.charAt(i);
flag 0;
}
else {
if(
flag == 0) {
out += " ";
flag 1;
      }
   }
}
return 
out;
}
//  End -->
</script> 
Tambien usa esto para llamar al input:

Código HTML:
Ver original
  1. <FORM NAME="form">
  2. Y este input lo escondo, asi lo puedo enviar con el formulario <INPUT TYPE="text" NAME="boy">
  3. </form>

Código PHP:
<SCRIPT LANGUAGE="javascript"
 
var 
zork delineate2(text)
document.form.boy.value zork 
</script>
 
Y vean encontre este script que reemplaza los los espacios por + (y viceversa) no se si puede servir:

http://www.terra.es/personal6/morenocerro2/manual/formularios/jscript/cajas/ejemplo_8.html


Bueno eso es todo, gracias de antemano.

Última edición por julittok; 08/09/2011 a las 23:00 Razón: me falto info
  #2 (permalink)  
Antiguo 09/09/2011, 08:14
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar signo + por un espacio?

te dejo este tutorial por si quieres saber lo que está pasando

como solucionarlo?? por prioridad
  • en lugar de usar el método get usar post. en tal caso tendrás que recepcionar los datos usando un lenguaje del servidor
  • otra opción es reemplazar los signos (+) una vez recepcionados los datos str.replace(/\+/g, ' ');. con esta manera lo puedes hacer del lado del cliente
  #3 (permalink)  
Antiguo 09/09/2011, 11:33
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Dsculpen el js es este:

Código PHP:
Ver original
  1. var locate = window.location
  2. document.ver.burns.value = locate
  3.  
  4. var text = document.ver.burns.value
  5.  
  6. function delineate2(str){
  7.  
  8. point = str.lastIndexOf("=");
  9.  
  10. return(str.substring(point+1,str.length));
  11. }
  12. document.write(delineate2(text));
  13.  
  14. str.replace(/\+/g, ' ');

el de arriba es el que cambia los espacios por el signo +, pero ya no puedo editar.
  #4 (permalink)  
Antiguo 09/09/2011, 11:37
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Cita:
Iniciado por IsaBelM Ver Mensaje
te dejo [URL="http://html.conclase.net/w3c/html401-es/interact/forms.html#h-17.13.4"]este tutorial[/URL] por si quieres saber lo que está pasando

como solucionarlo?? por prioridad
  • en lugar de usar el método get usar post. en tal caso tendrás que recepcionar los datos usando un lenguaje del servidor
  • otra opción es reemplazar los signos (+) una vez recepcionados los datos str.replace(/\+/g, ' ');. con esta manera lo puedes hacer del lado del cliente
Gracias por tu respuesta IsaBelM, como puedo utilizar el str.replace(/\+/g, ' '); en el código?

se me ocurrio agregar al final esto:

Código PHP:
Ver original
  1. document.write(str.replace("+", " "));
pero la verdad no se tanto de js, agradeceria una mano. gracias

Última edición por julittok; 09/09/2011 a las 11:45
  #5 (permalink)  
Antiguo 09/09/2011, 11:52
Avatar de rafa_yael  
Fecha de Ingreso: mayo-2010
Ubicación: Zapotlanejo, Mexico
Mensajes: 54
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Cambiar signo + por un espacio?

Solo no uses la funcion convertSpaces. Y pasa directamente el texto a la variable que quieres almacenar.
  #6 (permalink)  
Antiguo 09/09/2011, 12:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Cita:
Iniciado por rafa_yael Ver Mensaje
Solo no uses la funcion convertSpaces. Y pasa directamente el texto a la variable que quieres almacenar.
Gracias por tu respuesta, pero el script que pasasa la info a los inputs es este:
Código PHP:
var locate window.location
document
.ver.burns.value locate
*
var 
text document.ver.burns.value
*
function 
delineate2(str){
*
point str.lastIndexOf("=");
*
return(
str.substring(point+1,str.length));
}
document.write(delineate2(text)); 
El otro es solo un codigo que encontre que pense podría ser util pero me confundi al copiarlo y ya no podia editar el post
  #7 (permalink)  
Antiguo 09/09/2011, 12:46
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar signo + por un espacio?

prueba así
Cita:
alert(window.location.search.split('=')[1].replace(/\+/g, ' '));
un poco de lectura sobre window.location y sus propiedades y métodos
  #8 (permalink)  
Antiguo 09/09/2011, 12:57
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Cita:
Iniciado por IsaBelM Ver Mensaje
prueba así

un poco de lectura sobre [URL="https://developer.mozilla.org/en/window.location"]window.location y sus propiedades y métodos[/URL]
Gracias IsaBelM, eso cambia los + pero lo hace adentro de una ventana de alerta, y yo necesitaria que se muestre como puse en las imagenes, no hoy forma de que se haga asi?
  #9 (permalink)  
Antiguo 09/09/2011, 13:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Gente lo logre hacer funcionar asi:

reemplazando la ultima linea:
Código PHP:
document.write(delineate2(text)); 
por esta otra:
Código PHP:
document.write(delineate2(text).replace(/+/g' ')); 
solo quiero preguntarles si esto tiene algun error sintactico o esta bien escrito.

gracias
  #10 (permalink)  
Antiguo 09/09/2011, 13:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar signo + por un espacio?

a tu primera pregunta
Cita:
document.write((window.location.search.split('=')[1].replace(/\+/g, ' '));
a la segunda pregunta, es correcto. pero no es necesario usar otra función, con usar el código que te he dejado es suficiente
  #11 (permalink)  
Antiguo 09/09/2011, 14:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Cambiar signo + por un espacio?

Cita:
Iniciado por IsaBelM Ver Mensaje
a tu primera pregunta

a la segunda pregunta, es correcto. pero no es necesario usar otra función, con usar el código que te he dejado es suficiente
Gracias por tu ayuda IsaBelM

Etiquetas: blancos, espacios, signo, sustituir
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 15:37.