2016-10-21 4 views
0

Der folgende AusdruckWie kann man die Zeilenbegrenzungszeichen plattformunabhängig erfassen?

/^\S+\s*$/m.exec("a\nb\n")[0] 

kehrt nur "a", aber nicht das Zeilentrennzeichen, obwohl \s should match \n.

Durch das Experimentieren fand ich heraus, dass der folgende Ausdruck tut irgendwie, was ich will:

/^\S+\s*$\n\r?/m.exec("a\nb\n")[0] 

Aber jetzt ist der reguläre Ausdruck ist plattformabhängig.

Wie können die Zeilenbegrenzungszeichen plattformunabhängig in das Match eingefügt werden?

+1

'(? = [\ R \ n]) \ r? \ N?' - bestätigen Sie, dass ein Zeilenvorschub-Zeichen vorhanden ist, und passen Sie dann auf 'CR' (alter Mac),' LF' (Linux) oder ' CRLF' (Windows). –

Antwort

0

Sorry, aber ich habe es selbst.

Anstatt das Ende der Zeile anzupassen, scheint es besser zu sein, den Anfang der nächsten Zeile zu finden. Dies ist:

/^\S+\s*^/m.exec("a\nb\n")[0] 

gibt "a \ n" zurück.

Verwandte Themen