Modèle de Chaînes ES6 éviter les sauts de ligne
J'ai une longue chaîne, qui je construis à l'aide de ES6 chaînes du modèle, mais je veux que ce soit sans les sauts de ligne:
var string = `As all string substitutions in Template Strings are JavaScript
expressions, we can substitute a lot more than variable names.
For example, below we can use expression interpolation to
embed for some readable inline math:`
console.log(string);
Résultat:
As all string substitutions in Template Strings are JavaScript
expressions, we can substitute a lot more than variable names.
For example, below we can use expression interpolation to
embed for some readable inline math:
À mes attentes:
As all string substitutions in Template Strings are JavaScript expressions, we can substitute a lot more than variable names. For example, below we can use expression interpolation to embed for some readable inline math:
s'échapper de la ligne de rupture avec un slash `\` et elle disparaît dans la sortie, même dans les chaînes du modèle.
Doublon de stackoverflow.com/questions/37321047/...
Doublon de stackoverflow.com/questions/37321047/...
OriginalL'auteur dim0_0n | 2016-06-23
Vous devez vous connecter pour publier un commentaire.
Un saut de ligne est un saut de ligne... Si vous les produire manuellement, je trouve très prévisibles que vous obtenez au cours de l'exécution.
BTW, j'ai trouver trois solutions de contournement pour l'instant:
Configurer votre IDE ou un éditeur de code pour faire retour de sorte que vous n'aurez pas besoin d'ajouter des sauts de ligne dans votre code si vous n'en avez pas besoin: votre éditeur de casser votre code en deux lignes ou plus si chaque code de la phrase va au-delà de configuré le nombre maximal de caractères.
Supprimer les sauts de ligne avec
String.prototype.replace
:Attention: ici, vous êtes à l'exécution d'une fonction runtime au format de votre compilation code, qui peut ressembler à un anti-modèle, et avoir d'impact sur les performances
Dans mon cas, j'irais avec #1 option.
qu'entendez-vous par de grandes lacunes? Elle contient plus de caractères que le saut de ligne?
copier/coller votre #2 dans la console puis exécutez
string
. Vous obtenez la chaîne, mais il y a beaucoup d'espaces entre lesJavascript
etexpressions
,names.
etFor example
, etc.Vous ne pouvez pas le voir dans un navigateur, car les navigateurs généralement de supprimer des espaces supplémentaires, mais le sous-jacent de données est incorrect.
oh, je vois, d'ailleurs c'est un problème dans la chaîne elle-même, ne l'approche. De toute façon je vais mettre à jour ma réponse pour résoudre le problème
OriginalL'auteur
C'est fou.
Presque chaque seule réponse ici suggèrent l'exécution d'une fonction runtime afin de bien format, compilation mauvais texte au format oO Suis-je le seul choqué par le fait même, en particulier l'impact sur les performances ???
Comme indiqué par @dandavis, le solution officielle, (qui d'ailleur est également l'historique de solution pour les scripts shell unix), est l'espace le retour chariot, ainsi, avec l'espace de caractère :
\
Simple, performant, officiel, lisible, et en forme de coquille dans le processus de
Cela fonctionne, vous tentez de fuir le carriage return, pas les autres espaces
Il n'y a pas "plus d'espaces", ni de "code indentation" nécessaire. "La façon de le faire" est de ne pas faire cela, et en suivant les normes du code. La façon la plus commune que voyez-vous dans un éditeur de code (j'.e celles qui sont automatiquement le retour à la ligne) n'est pas à re-tiret comme la ligne précédente, il va à la ligne et c'est tout (0 indentation). Si vous voulez vraiment tiret, aller et essayer, HTML imprime uniquement un caractère d'échappement, de toute façon. Si vraiment vous ne voulez vraiment pas à l'x de l'espace des personnages, même si le HTML auto-analyse, de pré-traiter votre code avec un outil qui le fait, mais merci de ne pas exécuter d'exécution pour l'amour de dieu
OriginalL'auteur
Si vous avez ES6, vous pouvez utiliser les tags. Par exemple, le stripIndent tag de la commune-les balises de la bibliothèque:
Installer via:
Besoin via:
Utiliser comme:
Edit: Comme mentionné dans les commentaires, vous avez probablement besoin de chercher l':
const oneLine = require('common-tags/lib/oneLine')
numéro de série de votre résultat souhaité.Plus d'infos sur la dite commune-les balises de lien ainsi que sur ce blog
oneLine
une balise à partir de lacommon-tags
de la bibliothèque.L'exécution d'une exécution de la fonction de formatage de code... Downvote. Bien que la lib est assez utile, et merci pour le partage; pour ce cas d'utilisation, il déclare qu'il "construit à l'aide de la chaîne de es6 modèle", compilation.. impact sur les Performances ?
OriginalL'auteur
Personnellement, je préfère le look de joindre un tableau plutôt:
+
, car cela ne crée qu'un interne StringBuilder pour l'ensemble au lieu d'une seule pour chaque association (si c'est un micro-optimisation)L'exécution d'une exécution de la fonction de formatage de code... Downvote. L'impact sur les performances ?
les performances sont vraiment va entraver l'expérience de l'utilisateur, au point que la lisibilité de ce code garantit un downvote?
Imaginez que pour 10000 chaînes que vous avez votre réponse
Orthographier différemment, c'est plus comme un "concept-hérésie", la pratique en elle-même, que je suis en pointant du doigt. C'est definaly conceptualy une mauvaise pratique, et l'on pourrait tout simplement apprendre à utiliser les bons outils pour la bonne chose. IDE de configuration pour "ce qu'ils voient comme un développeur", transpilers et pré-processeurs à faire au moment de la construction fin des choses, et de laisser d'exécution pour l', bien.. au moment de l'exécution des trucs.
OriginalL'auteur
Configurer l'IDE de faire des enveloppements et utiliser un modèle de chaîne 1-liner, comme dans votre 1er extrait de code.
Utiliser
\
échapper littérale char juste avant les sauts de ligne.Exemple:
Mais il ne vous sauvera pas de problèmes avec l'espace de l'alignement.
Soit utiliser de la vieille école ES5 concaténation avec un '+'.
Exemple:
Soit utiliser le hack avec le modèle de chaîne vide var ${"}:
Exemple:
La 1ère méthode est beaucoup mieux, en cause:
OriginalL'auteur