Supprimer les sauts de ligne à partir de début et de fin de chaîne
J'ai remarqué que trim() ne supprime pas les caractères de nouvelle ligne de début et de fin de chaîne, donc je suis en train d'accomplir ceci avec la regex suivante:
return str.replace(/^\s\n+|\s\n+$/g,'');
Cela ne supprime pas les nouvelles lignes, et j'ai peur, je suis hors de ma profondeur ici.
MODIFIER
La chaîne est généré avec ejs comme
go = ejs.render(data, {
locals: {
format() {
//
}
}
});
Et c'est ce que l'aller, mais avec quelques lignes vides avant. Lorsque j'utilise go.trim (), je reçois toujours les nouvelles lignes avant.
<?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>
- Essayez:
/^[\s\n]+|[\s\n]+$/
- Ce
trim
utilisez-vous? Le standard n'. Aussi, merci de nous montrer votre chaîne, vous avez peut-être un peu bizarre (invisible) caractères là. - Vraiment
Javascript
trim()
ne supprime pasnewlines
? Mais il faut supprimer toutes leswhitespaces
de la fin? Etnewline
devrait être l'un d'entre eux.\n
est un sous-élément de\s
. - mais les sauts de ligne sont inclus dans
\s
- Ah oui!,
\t\r
ainsi, je suppose? - Pouvons-nous obtenir des précisions ici? ne
trim
se débarrasser de caractères de saut de ligne trim()
supprimé les caractères de saut de ligne à la fin de ma Chaîne (bash sortie de execSync) donc il doit y avoir quelque chose de bizarre avec sa chaîne.
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
jsFiddle ici.
str.replace(/^\n|\n$/g, '');
str.replace(/(^\s*(?!.+)+\n+)|(\s+(?!.+)+\n*$)/g, "")
va supprimer tous fuite des espaces à l'exception de la première et de la dernière ligne qui contient tous les caractères.str.replace(/(^\s*(?!.+)\n+)|(\n+\s+(?!.+)$)/g, "")
Chaîne de caractères.trim() en fait de supprimer les retours à la ligne (et tous les autres espaces). Peut-être qu'il n'a pas l'habitude? Il n'a certainement au moment de la rédaction. À partir de la liés à la documentation (italiques ajoutés):
Si vous souhaitez couper tous les retours à la ligne et d'autres potentiels d'espaces, vous pouvez utiliser les éléments suivants:
Si vous voulez seulement garniture retours à la ligne, vous pouvez utiliser une solution qui cible les retours à la ligne en particulier.
trim
qu'avec IE 9+, mais le ciel vous aider si vous êtes soutenir IE 8 à ce point. ;^D/^\s+|\s+$/g
doit attraper quoi que ce soit. Votre regex peuvent le problème est que si votre retours à la ligne (contenir\r
personnages qu'ils ne serait pas appariés.Essayez ceci: