Ответ 1
Попробуйте следующее:
str = str.replace(/^\s+|\s+$/g, '');
Я заметил, что 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>
Попробуйте следующее:
str = str.replace(/^\s+|\s+$/g, '');
String.trim() фактически удаляет символы новой строки (и все остальные пробелы). Может, раньше не было? Это точно делает во время написания. Из связанной документации (выделение добавлено):
Метод trim() удаляет пробелы с обоих концов строки. Пробел в этом контексте - это все пробельные символы (пробел, табуляция, пробел и т.д.) И все символы конца строки (LF, CR и т.д.).
Если вы хотите обрезать все новые строки плюс другие потенциальные пробелы, вы можете использовать следующее:
return str.trim();
Если вы хотите обрезать только новые строки, вы можете использовать решение, специально предназначенное для новых строк.
/^\s+|\s+$/g
должен ничего поймать. В вашем текущем регулярном выражении может возникнуть проблема, заключающаяся в том, что если ваши строки-строки содержат символы \r
, они не будут сопоставляться.
Попробуйте это:
str.split('\n').join('');
return Line.Replace("\r\n", "").Replace("\n", "").Replace("\r", "");