我注意到trim()不会从字符串的开头和结尾删除新的行字符,所以我试图用下面的正则表达式来实现这一点:
return str.replace(/^\s\n+|\s\n+$/g,'');
这并没有删除新的线条,我担心我在这里超出了我的深度。
EDIT使用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>
5条答案
按热度按时间w6lpcovy1#
试试这个:
jsFiddle here。
wvyml7n52#
String.trim()实际上删除了换行符(和所有其他空格)。也许它以前不这样做?在写这篇文章的时候,它确实这样做了。从链接的文档(强调部分已添加):
trim()方法用于删除字符串两端的空白。这里的空白是指所有的空白字符(空格、制表符、不间断空格等)和所有的行结束符(LF、CR等)。
如果要修剪所有换行符和其他可能的空格,可以使用以下命令:
如果你想 * 只 * 修剪换行符,你可以使用一个专门针对换行符的解决方案。
e4yzc0pl3#
/^\s+|\s+$/g
应该可以捕获任何东西。你当前的正则表达式可能会有这样的问题,如果你的换行符包含\r
字符,它们将不会被匹配。hof1towb4#
return str.trim().replace(/^\s\n+|\s\n+$/g,'')
如果你像这样使用它,那么我将从开始和结束字符串中删除换行符
368yc8dk5#
试试这个: