2011-05-19 16 views

Respuesta

114

Utilice la bandera mundial.

str.replace(/\n/g, '<br />'); 
+1

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace#Example.3a_Using_global_and_ignore_with_replace "Cadena no estándar A que especifica una combinación de indicadores de expresiones regulares. El uso del parámetro flags en el método String.replace no es estándar. En lugar de usar este parámetro, use un objeto RegExp con los indicadores correspondientes. " – Beta033

+2

¿Cuál es su punto? Mi solución no usa el parámetro de indicadores no estándar – Brigham

+0

Gracias Brigham. Su código funciona muy bien ... – csonuryilmaz

35

Brighams answer usa literal regexp.

Solución con un objeto Regex.

var regex = new RegExp('\n', 'g'); 
text = text.replace(regex, '<br />'); 

probar aquí: JSFiddle Working Example

+0

Uh, el * parámetro * no es estándar. Usar la bandera directamente después de la expresión está bien. Básicamente está haciendo lo mismo que la otra respuesta, excepto que usa el constructor RegExp (que se usa comúnmente para expresiones dinámicas). –

+0

@Matt dice quién? Hay una referencia de Mozilla en mi publicación. ¿Dónde está tu referencia? –

+0

Estás malinterpretando la fuente. '//' es la forma literal de un objeto RegExp. MDC indica que el tercer parámetro (no el primero) no es estándar. –

-1

Como se explica here, puede utilizar:

function replaceall(str,replace,with_this) 
{ 
    var str_hasil =""; 
    var temp; 

    for(var i=0;i<str.length;i++) // not need to be equal. it causes the last change: undefined.. 
    { 
     if (str[i] == replace) 
     { 
      temp = with_this; 
     } 
     else 
     { 
       temp = str[i]; 
     } 

     str_hasil += temp; 
    } 

    return str_hasil; 
} 

... que luego se puede llamar usando:

var str = "50.000.000"; 
alert(replaceall(str,'.','')); 

La función alertará "50000000"

+0

Por favor explique por qué downvotes .. –

Cuestiones relacionadas