Alguna vez he tenido la necesidad de eliminar los saltos de línea en un campo de formulario de tipo textarea. Más aún, he tenido la necesidad de eliminar los saltos de línea del texto seleccionado dentro de un textarea. Con la siguiente función Javascript conseguimos localizar la porción de texto seleccionado y eliminar los saltos de línea o line breaks (“\n”) y los retornos de carro o carrier return (“\r”). Para ello utilizamos funciones propias del lenguaje Javascript (createTextRange, duplicate, replace) y expresiones regulares.

function suprSaltos(campo) {
 if (campo.createTextRange) {
  campo.focus(campo.caretPos);
  campo.caretPos = document.selection.createRange().duplicate();
  if(campo.caretPos.text.length>0) {
   var sel = campo.caretPos.text;
   var fin = '';
   while(sel.substring(sel.length-1, sel.length)==' ') {
    sel = sel.substring(0, sel.length-1);
    fin += ' ';
   }
   campo.caretPos.text = sel.replace(new RegExp('\\n','g'),''). _
                          replace(new RegExp('\\r','g'),'') + fin;
  } else campo.caretPos.text = '';
 }
 else campo.value += '';
}

Como en otras funciones, en esta función es necesario juntar la expresión en una única línea quitando los _ de final de línea porque de lo contrario no funcionará.

Etiquetas: , ,
4 Respuestas a “Eliminar saltos de línea en un textarea con Javascript”
  1. felipe dice:

    necesito un salto de linea para un textarea
    este debe cambiar de la primera fila a la segunda despues
    de que hayan pasado 30 caracteres o letras

    El codigo es el siguiente

    function ismaxlength(obj){
    var mlength=obj.getAttribute? parseInt(obj.getAttribute(“maxlength”)) : “”
    if (obj.getAttribute && obj.value.length>mlength)
    obj.value=obj.value.substring(0,mlength)
    }

    <?
    if($opc1 ‘R’){
    $campos = array(“USUARIOS”);
    chequeo_campos(“form1″,$campos);
    }
    ?>

    <form name=”form1″ enctype=”multipart/form-data” action=”../adm_productos_ver/observacion_guardar.php?sec1=&inicio=&page=” method=”post” onSubmit=”javascript:return valida_campos(1)”>
    <table width=”100%” border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″ bgcolor=””>
    <tr bgcolor=”>

    <tr bgcolor=”>

    OBSERVACIONES
     

    Mensaje:
    <textarea name=”OBSER” id=”OBSER” rows=”4″ cols=”70″ wrap=”off”>FVEstado ‘0’){ echo ‘readonly’; } ?> maxlength=”255″ onKeyUp=”return ismaxlength(this)”>FVObfac ?>

     

    FVEstado == ‘0’) { ?>

    Volver

    <tr bgcolor=”>

    Porfavor la respuesta la necesito lo mas rapido posible porfavor
    muchas gracias por su ayuda y comentarios

    Se despide
    Atte
    Felipe Urrutia R.

  2. davidbelu dice:

    Cuando des una solucion da una solucion bien
    esas soluciones no funcionan.
    estan incompletas y uno q apenas esta con esto de la programacion
    ya ni la chin”#$$%$%&/%&

  3. admin dice:

    Hola David, esta solución a mí me funcionó perfectamente en un momento concreto para un caso concreto.
    Si expones más detalladamente tu problema quizás podamos ayudarte.
    Un saludo.

  4. Rene dice:

    Anexo ejemplo para quitar saltos de linea y retorno de carro de un campo textarea

    function test(){
    var campo= window.document.myForma.nombre_text_area.value;
    alert(“Mi valor antes de funcion:”+campo);
    alert(“Mi resulado es:”+campo.replace(new RegExp(‘\n’,’g’),”).replace(new RegExp(‘\r’,’g’),”));
    }

    Espero les sirva

  5.  
Deja una Respuesta