Estoy usando regex en JavaScript para dividir una cadena larga y forzar un cambio de palabra, pero aprendí que algunos navegadores (Safari en particular) no admiten búsquedas positivas. ¿Hay una forma más amigable para el navegador de obtener el mismo resultado que este?
if (text.length > 45) { return text.split(/(?<=^(?:.{45})+)(?!$)/).join("\r\n"); }Usar
return text.replace(/(.{45})(?!$)/g, "$1\r\n");Ver prueba de expresiones regulares .
EXPLICACIÓN
NODE EXPLANATION -------------------------------------------------------------------------------- ( group and capture to \1: -------------------------------------------------------------------------------- .{45} any character except \n (45 times) -------------------------------------------------------------------------------- ) end of \1 -------------------------------------------------------------------------------- (?! look ahead to see if there is not: -------------------------------------------------------------------------------- $ before an optional \n, and the end of the string -------------------------------------------------------------------------------- ) end of look-ahead