文字列から先頭と末尾の空白と改行を削除しようとしています。改行は\n
(2 つの別個の文字、スラッシュとn
) のように記述されます。つまり、これは文字列リテラルであり、CR LF 特殊文字ではありません。
たとえば、次のようになります。
\n \nRight after this is a perfectly valid newline:\nAnd here is the second line. \n
これになるはずです:
Right after this is a perfectly valid newline:\nAnd here is the second line.
私はこの解決策を思いつきました:
text = text
.replace(/^(\s*(\\n)*)*/, '') // Beginning
.replace(/(\s*(\\n)*)*$/, '') // End
RegexPalによると、これらのパターンはうまく一致します。
ただし、2 番目のパターン (文字列の末尾に一致させる) には非常に長い時間がかかります。Chrome では、段落が 2 つしかなく、末尾にスペースがいくつかある文字列で約 32 秒かかります。最初のパターンは、同じ文字列で非常に高速 (ミリ秒) です。
なぜそんなに遅いのですか?これについてもっと良い方法はありますか?