Ho uno strumento piuttosto elegante, underscore-cli, che sta ottenendo il comportamento più strano quando si stampano le informazioni di aiuto/utilizzo.Errore nel motore regex di JavaScript V8 quando si combina l'inizio della linea?
Nella funzione d'uso(), faccio questo a blocchi del rientro del testo (ad esempio, le opzioni):
str.replace(/^/, " ");
Questa espressione regolare, oltre ad essere piuttosto ovvio, arriva direttamente dal TJ Hollowaychuk di commander.js codice. L'espressione regolare è corretta.
Tuttavia, ottengo spazi bizzarri inseriti nel mezzo del mio testo di utilizzo. in questo modo:
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% di possibilità, questo deve essere un bug nel V8.
Qualcuno sa perché questo accade, o quale sarebbe la soluzione più semplice?
Sì, risulta questo IS un errore V8, 1748 per l'esattezza. Ecco the workaround I used in the tool:
str.replace(/(^|\n), "$1 ");
Basta aggiungere una stringa all'inizio? –
hai pulito il testo dei ritorni a capo? – Trey
hai provato a mettere qualcosa di diverso dagli spazi? il browser non suppone di mostrare più di uno spazio - per inserire più spazi è necessario utilizzare ' ' ... –