删除字符串开头和结尾的换行符

Remove line breaks from start and end of string

本文关键字:换行符 结尾 字符串 开头 删除      更新时间:2023-09-26

我注意到trim()不会从字符串的开头和结尾删除换行符,所以我正在尝试使用以下正则表达式来实现这一点:

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

这并没有删除新行,我担心我在这里超出了我的深度。

编辑字符串是用 ejs 生成的,如下所示

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

这就是go,但前面有几个空行。当我使用 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>

试试这个:

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

jsFiddle 在这里。

String.trim() 实际上删除了换行符(以及所有其他空格)。也许它不习惯?在撰写本文时确实如此。从链接的文档(着重号添加):

trim() 方法删除字符串两端的空格。此上下文中的空格是所有空格字符(空格、制表符、无分隔空格等)和所有行终止符字符(LF、CR 等)。


如果要修剪所有换行符以及其他潜在的空格,可以使用以下内容:

return str.trim();

如果只想裁切换行符,则可以使用专门针对换行符的解决方案。

/^'s+|'s+$/g应该捕获任何东西。您当前的正则表达式可能存在以下问题:如果您的换行符包含'r个字符,它们将不匹配。

return str.trim().replace(/^''s'+|''s'+$/g,'')

如果你这样使用它,那么我将从开始和结束字符串中删除换行符

试试这个:

str.split(''n').join('');