78

私はtrim()が文字列の最初と最後から改行文字を削除しないことに気づいたので、次の正規表現でこれを達成しようとしています。

return str.replace(/^\s\n+|\s\n+$/g,'');

これは新しい線を削除しません、そして私はここで私の深さから外れているのではないかと心配しています。

編集 文字列はそのようなejsで生成されています

go = ejs.render(data, { 
    locals: { 
        format() {
            // 
        }
    } 
});

そして、これが何であるかですが、前にいくつかの空の行があります。go.trim()を使用すると、以前はまだ新しい行を取得しています。

<?xml version="1.0"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master master-name="Out" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="0.5in" margin-left="0.75in" margin-right="0.75in">
            <fo:region-body margin-top="1in" margin-bottom="0.25in"/>
            <fo:region-before extent="1in"/>
            <fo:region-after extent="0.25in"/>
            <fo:region-start extent="0in"/>
            <fo:region-end extent="0in"/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="Out" initial-page-number="1" force-page-count="no-force">
        <fo:static-content flow-name="xsl-region-before">
            <fo:block font-size="14pt" text-align="center">ONLINE APPLICATION FOR SUMMARY ADVICE</fo:block>
            <fo:block font-size="13pt" font-weight="bold" text-align="center">Re:
                SDF, SDF
            </fo:block>

        </fo:static-content>

        <fo:flow flow-name="xsl-region-body" font="10pt Helvetica">

            .. removed this content

        </fo:flow>
    </fo:page-sequence>
</fo:root>
4

4 に答える 4

125

これを試して:

str = str.replace(/^\s+|\s+$/g, '');

jsFiddleはこちら

于 2013-01-28T22:34:04.333 に答える
84

String.trim()は、実際には改行(および他のすべての空白)を削除します。多分それは慣れていませんでしたか?これを書いている時点では間違いなくそうです。リンクされたドキュメントから(強調が追加されました):

Trim()メソッドは、文字列の両端から空白を削除します。このコンテキストでの空白は、すべての空白文字(スペース、タブ、ノーブレークスペースなど)とすべての行末記号文字(LF、CRなど)です。


すべての改行とその他の潜在的な空白を削除する場合は、次を使用できます。

return str.trim();

改行のみをトリミングする場合は、改行を具体的に対象とするソリューションを使用できます。

于 2018-01-03T16:02:35.377 に答える
4

/^\s+|\s+$/g何でもキャッチする必要があります。現在の正規表現には、改行に\r文字が含まれていると一致しないという問題が発生する可能性があります。

于 2013-01-28T22:33:59.160 に答える
-5

これを試して:

str.split('\n').join('');
于 2019-08-22T17:51:39.930 に答える