Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

345
Vistas
Usando condiciones negativas, cómo eliminar espacios en blanco excepto saltos de línea y párrafo

Una forma sencilla de eliminar los espacios en blanco en mi caso es hacer esto:

 <textarea id="thetext" lines="8" style="width: 100%; height: 8em;"> hello, how are you i'm fine And i hope the same from you </textarea><br> <button onclick="whitespaces()">Vanish</button> <script> function whitespaces() { var input = document.getElementById("thetext"); input.value = input.value .replace(/\t{1,}/g, "") .replace(/\n{3,}/g, '\n\n') .replace(/ {1,}/g, ' ') .replace(/^ /gm, '') .replace(/ $/gm, '') .replace(/^\n{1,}/g, '') .replace(/\n{1,}$/g, ''); } </script>

Sin embargo, estoy tratando de lograr el mismo objetivo con una condición negativa. Eso es usando menos o algo así. Como soy nuevo en js, no estoy familiarizado con las condiciones negativas. Entonces, ¿alguien puede decirme cómo usar la condición negativa en este caso? El código debería ser algo como esto:

 function whitespaces() { var input = document.getElementById("thetext"); input.value = input.value.replace(all whitespaces [\s] minus linebreak [\n] and paragraph breaks [\n\n]) }
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

SOLUCIÓN 1

Puede usar la siguiente expresión regular para hacer coincidir todos los caracteres de espacio en blanco excepto las líneas nuevas.

 [^\S\r\n]

Es decir, no-no-espacio en blanco (la S mayúscula complementa) o no-retorno de carro o no-nueva línea. Distribuyendo el not externo (es decir, el complemento ^ en la clase de caracteres) con la ley de De Morgan, esto es equivalente a "espacio en blanco pero no retorno de carro o nueva línea". La inclusión de \r y \n en el patrón maneja correctamente todas las convenciones de nueva línea de Unix (LF), Mac OS clásico (CR) y DOS-ish (CR LF).

De esta respuesta de stackoverflow .

SOLUCIÓN 2

En javascript, también puede usar una función de reemplazo para verificar cada coincidencia y devolver la cadena de reemplazo solo si cumple ciertas condiciones. La función de reemplazo aquí verifica cada espacio en blanco si es un salto de línea.

 <textarea id="thetext" lines="8" style="width: 100%; height: 8em;"> hello, how are you i'm fine And i hope the same from you </textarea><br> <button onclick="whitespaces()">Vanish</button> <script> function whitespaces() { var input = document.getElementById("thetext"); var inputVal = input.value; inputVal = inputVal.replace(/\s/g, function(match){ return match === '\n' ? match : ''; }); input.value = inputVal; } </script>

SOLUCIÓN 3

Otra posible solución es reemplazar primero todos los saltos de párrafo y saltos de línea por algún texto falso (sin espacios en blanco). Luego haga el reemplazo de espacios en blanco. Después de eso, vuelva a convertir los textos falsos en saltos de párrafo y de línea. (Tenga en cuenta que dado que los párrafos son saltos de línea dobles, no necesita reemplazar la línea con el salto de párrafo).

 <textarea id="thetext" lines="8" style="width: 100%; height: 8em;"> hello, how are you i'm fine And i hope the same from you </textarea><br> <button onclick="whitespaces()">Vanish</button> <script> function whitespaces() { var input = document.getElementById("thetext"); var inputVal = input.value; inputVal = inputVal.replace(/\n\n/g, "somebogustextforparagraphbreaks"); inputVal = inputVal.replace(/\n/g, "somebogustextforlinebreaks"); inputVal = inputVal.replace(/\s{1,}/g, ""); inputVal = inputVal.replace(/somebogustextforparagraphbreaks/g, "\n\n"); inputVal = inputVal.replace(/somebogustextforlinebreaks/g, "\n"); input.value = inputVal; } </script>

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda