Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

351
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda