-1
votes

Comment formater une chaîne en JavaScript?

Je veux formater la chaîne en JavaScript. Avec formatage, je veux dire:

  • Suppression les espaces ou les onglets au début et à la fin em> de la chaîne. Li>
  • Suppression multiples espaces em> entre les mots de la chaîne. li>
  • faisant des virgules dans "séquence" li> ul>

    Je sais que je peux y parvenir avec regex code>, mais ne pouvait pas comprendre comment. p>


    Maintenant: P>

    Hello, how areyou?
    


1 commentaires

Il suffit d'utiliser la garniture () au lieu de regex comme ici W3Schools.com/jsref/jsref_trim_string.asp //a >


5 Réponses :


1
votes

J'ai résolu votre problème avec 3 expressions régulières, mais la première est réalisée par le string.trim () existant.trim () code> méthode de javascript.

p>

var myString = "     Hello  , how are         you   ? ";
myString = myString
.trim() // trim start and end
.replace(/[ \t\n]+/g, ' ') // reduce whitespace to one space
.replace(/ ([,\?\.\!\;])/g, '$1'); // remove one space before pointation characters
console.log(myString);


0 commentaires

0
votes

<div id='test'></div>


2 commentaires

PRO-CONSEIL: N'utilisez jamais innerhtml pour les supports non-HTML et non évalués texte. Utilisez Innertext à la place.


Un autre conseil: Utilisez @ dans les commentaires (par exemple @niklase.), Pour obtenir la personne adressée notifiée. Sinon, vous devez espérer trébucher sur votre réponse. Stackoverflow vous donne automatiquement des suggestions lorsque vous vous indiquez dans @. Les propriétaires d'articles sont notifiés par défaut.



0
votes

Une autre façon d'aller avec une seule regex:

p>

var myString = "     Hello  , how are         you   ? ";
myString = myString.replace(/^\s+|\s+$|\s+(?![a-z])/g, '');
console.log(myString);


0 commentaires

1
votes

Vous pouvez produire la chaîne souhaitée en remplaçant les allumettes de l'expression régulière suivante avec des chaînes vides.

^            : match beginning of string
[ \t]*       : match 0+ spaces or tabs
|            : or
[ \t]        : match a space or tab
(?=[ \t,?])  : next character must be a space, tab, comma or question mark
|            : or
[ \t]*       : match 0+ spaces or tabs
$            : match end of string


0 commentaires

0
votes

J'utilise une fois remplacé pour faire cela.

myString.replace(/(^\s+|\s+$)/g, ""); //same as
myString.trim();

myString.replace((\s+(?=[\.,!?])), "");
//Will only matches spaces (which following .,!?)
//So only spaces will be replace

myString.replace((\s+(?=\s)), "");
//same as with following ,.!? But this case with space

//see on the regex replaced with same that is "", so we can combine them together
myString.replace(/(\s+(?=[,\.?!])|^\s+|\s+$|\s+(?=\s))/g, "")


0 commentaires