2012-02-15 11 views
5

Tengo la siguiente llamada JQuery AJAX que envía datos de formularios HTML a mi script del lado del servidor. Sin embargo, actualmente encuentro saltos de línea y los convierte a <br /> para visualizarlos en otra parte de mi aplicación. Ahora necesito asegurarme de que estoy eliminando los apóstrofes, pero no estoy seguro de cómo reemplazar varios caracteres de una vez.Encontrar varios caracteres y reemplazarlos con JQuery

Este es el JQuery que uso actualmente antes de agregar esto a mi AJAX.

description = $("#description").val().replace(/\n/g, '<br />'); 

¿Alguien puede señalarme en la dirección correcta?

Gracias

+0

posible duplicado de [Valor Javascript para reemplazar varios valores] (http://stackoverflow.com/questions/ 9073372/javascript-value-replace-for-multiple-values) –

Respuesta

15

Usted no tiene que hacerlo de una sola vez en el sentido de una llamada a .replace(), simplemente múltiples cadena de .replace() llamadas:

description = $("#description").val().replace(/\n/g, '<br />') 
            .replace(/'/g, ''); 

(o reemplace con '&#39;' o si '&apos;' eso es lo que necesita ...)

+0

¡Esto es perfecto! ¡No pensé que sería así de simple! –

+0

Además, ¿alguien puede decirme por qué mi reemplazo original() podría hacer que reemplace "0" por "" ... –

1

El método .serialize() usa encodeURIComponent para codificar todos sus campos de forma tal que no tenga que escanear cadenas manualmente.

Si no está en una forma sólo tiene que utilizar:

description = encodeURIComponent($("#description").val()); 
0

Trate Esta Ponga sus valores en las variables y reemplazar.

$(function() { 
      var s = "str"; 
      var t = "nw str"; 
      alert(s.replace(s, t)); 
     }); 
0

puede crear función recursiva

function replaceBr(){ 
    var val = $("#description").val();  
    while (val !=(val = val.replace(/\n/g, '<br />'))); 
    return val; 
} 

THX

+0

La bandera g en la expresión regular significa que todas las ocurrencias del patrón serán reemplazadas, usted no necesito agregar un bucle – nnnnnn

2

Estoy de acuerdo con nnnnnn que usted no tiene que hacerlo todo de una sola vez, aunque se puede utilizar el operador or | expresiones regulares y utilice una devolución de llamada como abajo, vea mdn regex para más detalles

var foo = '"there are only 10 people in this world that understand binary, 
      \n those who can and those who can\'t"\n some joke'; 

foo = foo.replace(/\n|"/g, function(str) { 
    if (str == '\n') { 
    return '<br/>'; 
    } else { 
    return ''; 
    } 
}); 

document.write(foo); 

aquí es un demo

2

Puede usar | (Tubos) para incluir múltiples personajes para reemplazar:

str = str.replace(/X|x/g, ''); 

(ver mi violín aquí: fiddle)

Cuestiones relacionadas