Quiero envolver texto simple en un objeto <span>
obteniendo su texto interno (que puedo hacer) y reemplazándolo con texto que ha sido envuelto aunque solo sea con \n
usado en su lugar para nuevas líneas.
Encontré esta respuesta , pero no se proporcionó un ejemplo de cómo usarlo.
// Static Width (Plain Regex) const wrapFuntion = (s) => s.replace( /(?![^\n]{1,32}$)([^\n]{1,32})\s/g, '$1\n' );
Digamos que mi cadena se define a continuación
let stringName = "Here is my really long string, that I want to wrap every 20 or so characters" let maxChars = 20; // Max number of characters on each line let newString = wrapFuntion(stringName, maxChars);
De los comentarios sobre la respuesta, probablemente sea fácil para cualquier persona con experiencia en JavaScript, o me he perdido algo que la mayoría encuentra obvio en la respuesta. Solo busca aprender.
mi puntuación es demasiado baja para comentar la respuesta original
Use el código justo debajo del código estático, el que dice código dinámico
// Dynamic Width (Build Regex) const wrap = (s, w) => s.replace( new RegExp(`(?![^\\n]{1,${w}}$)([^\\n]{1,${w}})\\s`, 'g'), '$1\n' );
ya que desea especificar la longitud de la línea.
// Dynamic Width (Build Regex) const wrap = (s, w) => s.replace( new RegExp(`(?![^\\n]{1,${w}}$)([^\\n]{1,${w}})\\s`, 'g'), '$1\n' ); const bob = document.getElementById("bob"); let stringName = bob.innerText; let wrapNum = 20; let newString = wrap(stringName, wrapNum); bob.innerText = newString;
<span id="bob">Here is my really long string, that I want to wrap every 20 or so characters</span>