Tengo una herramienta muy ingeniosa, underscore-cli, que está teniendo el comportamiento más extraño al imprimir la información de ayuda/uso.Error en el motor regex JavaScript V8 cuando se hace coincidir el comienzo de la línea?
En la función de uso(), hago esto a los bloques de sangría del texto (por ejemplo, las opciones):
str.replace(/^/, " ");
Esta expresión regular, además de ser bastante obvio, viene directamente de TJ Hollowaychuk de commander.js código. La expresión regular es correcta.
Sin embargo, obtengo espacios bizarros insertados en el medio de mi texto de uso. como este:
Commands: ... values Retrieve all the values of an object's properties. extend <object> Override properties in the input data. defaults <object> Fill in missing properties in the input data. any <exp> Return 'true' if any of the values in the input make the expression true. Expression args: (value, key, list) all <exp> Return 'true' if all values in the input make the expression true. Expression args: (value, key, list) isObject Return 'true' if the input data is an object with named properties isArray Return 'true' if the input data is an array isString Return 'true' if the input data is a string ...
99% de probabilidad, esto tiene que ser un error en V8.
¿Alguien sabe por qué sucede esto, o cuál sería el trabajo más fácil?
Yup, resulta esto IS un error de V8, 1748 para ser exactos. Aquí es the workaround I used in the tool:
str.replace(/(^|\n), "$1 ");
¿Solo agrega una cadena al principio? –
¿ha limpiado el texto de los retornos de carro? – Trey
¿Has intentado poner algo que no sean espacios? el navegador no debe mostrar más de un espacio; para colocar varios espacios, debe usar ' ' ... –