Expresiones regulares para insert "\ r" cada n caracteres en una línea y antes de una palabra completa (básicamente una function de ajuste de palabra)

Soy nuevo en JavaScript y expresión regular. Estoy tratando de formatear automáticamente un documento de text con un número específico de caracteres por línea o poner una "\ r" antes de la palabra.

Esto es funcionalmente similar a Wordwrap encontrado en numerosos editores de text.

P.ej. Quiero 10 caracteres por línea

Original: Mi nombre es Davey Blue.

Modificado: Mi nombre \ ris Davey \ rBlue.

Mira, si el décimo personaje es una palabra, pone toda esa palabra en una nueva línea.

Estoy pensando que lo siguiente debería funcionar hasta cierto punto /.{1,10}/ (Esto debería encontrar 10 caracteres ¿no?)

No estoy seguro de cómo hacer el rest.

Por favor ayuda.

básicamente

text = text.replace(/.{1,10} /g, "$&\n") 

Estoy seguro de que quiso decir "\ n" no "\ r"

¿Tiene que ser una expresión regular? Haría algo como esto:

 var str = "My name is Davey Blue.", words = str.split(/(\s+)/); for (var i=0,n=0; i<words.length; ++i) { n += words[i].length; if (n >= 10) { words[i] = "\n" + words[i]; n = 0; } } str = words.join(""); 

Esto hará el truco con una expresión regular.

 myString.replace(/((\w|\s){0,9}\s|\w+\s|$)/g, "$1\r") 

(Reemplace "9" por N-1, si N es la longitud deseada de la línea)

En cada position de la cadena, esto intenta hacer lo siguiente en este order:
1. intente hacer coincidir hasta 9 caracteres con avidez (= tantos como sea posible) seguido de un espacio (por lo que en total un máximo de 10 caracteres que terminan en un espacio), luego inserta \ r después de eso (mediante un reemploop de cadena)
2. si esto falla (porque no se pudo encontrar ninguna palabra con less de 10 caracteres), coincide con una palabra (sin importar cuánto time) más un espacio, luego inserta \ r después de esto
3. coincide con el final de la cadena y se inserta.

No creo que una expresión regular haga esto por ti. Me gustaría googlear javascript wordwrap, estoy seguro de que alguien ha escrito una biblioteca para hacer esto por usted