Tengo un área de texto, donde quiero permitir que los usuarios hagan saltos de línea presionando Intro, pero quiero limitar eso a solo un salto, porque entonces los usuarios podrían agregar tantos saltos como quieran, creando un gran espacio en blanco en la salida. .
<textarea maxLength={3000} onChange={(e) => setPersonBio(e.target.value)} value={personBio} type="text" rows="5" className="bio-content" placeholder="Enter something about yourself..."></textarea> Y luego lo muestro en la etiqueta <p> con white-space: pre-line;
Mi pregunta es cómo limitar la cantidad de pausas que el usuario puede ingresar o eliminar las adicionales después de enviarlas.
Puede usar la search de métodos de String e include dentro de un ciclo while para eliminar todos menos uno de un carácter repetido dado.
text = "abc\n\n\ndef\n\nghi"; document.write('<textarea rows=6>'+text+'</textarea>'); while (text.includes("\n\n")) text = text.replace("\n\n","\n"); document.write('<textarea rows=6>'+text+'</textarea>');Podrías intentar esto:
<textarea maxLength={3000} onChange=textAreaChange(e) value={personBio} type="text" rows="5" className="bio-content" placeholder="Enter something about yourself..."></textarea> var pre=""; function textAreaChange(e){ if(e.target.value.split("\n").length>1){ e.target.value=pre; return; }; setPersonBio(e.target.value); pre=e.target.value; };Agregue el javascript donde guarda todos sus otros javascript para este sitio.