J'ai la chaîne HTML suivante. Quel serait l'exemple de code en JavaScript pour supprimer les espaces blancs de début et de fin de cette chaîne?
<p> </p>
<div> </div>
Trimming using JavaScript<br />
<br />
<br />
<br />
all leading and trailing white spaces
<p> </p>
<div> </div>
Voir la méthode String trim()
- https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim
var myString = ' bunch of <br> string data with<p>trailing</p> and leading space ';
myString = myString.trim();
// or myString = String.trim(myString);
Modifier
Comme indiqué dans d'autres commentaires, il est possible d'utiliser l'approche regex. La méthode trim
est en réalité simplement un alias pour une expression rationnelle:
if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,'');
};
}
Cela injectera la méthode dans le prototype natif pour les navigateurs qui nagent encore dans la partie peu profonde de la piscine.
var str = " my awesome string "
str.trim();
pour les anciens navigateurs, utilisez regex
str = str.replace(/^[ ]+|[ ]+$/g,'')
//str = "my awesome string"
string.replace(/^\s+|\s+$/g, "");
Si vous travaillez avec une chaîne multiligne, comme un fichier de code:
<html>
<title>test</title>
<body>
<h1>test</h1>
</body>
</html>
Et voulez remplacer toutes les lignes de repère, pour obtenir ce résultat:
<html>
<title>test</title>
<body>
<h1>test</h1>
</body>
</html>
Vous devez ajouter le drapeau multiline
à vos expressions rationnelles, ^
et $
, ligne par ligne:
string.replace(/^\s+|\s+$/gm, '');
Devis pertinent de docs :
L'indicateur "m" indique qu'une chaîne d'entrée multiligne doit être traitée comme plusieurs lignes. Par exemple, si "m" est utilisé, "^" et "$" ne correspondent pas uniquement au début ou à la fin de la chaîne entière au début ou à la fin d'une ligne de la chaîne.
Je sais que c'est une très vieille question, mais sa réponse n’est toujours pas acceptée. Je vois que vous souhaitez supprimer les éléments suivants: les balises HTML "vides" et les espaces blancs basés sur une chaîne html.
J'ai trouvé une solution basée sur votre commentaire pour le résultat que vous recherchez:
Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces
var str = "<p> </p><div> </div>Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces<p> </p><div> </div>";
console.log(str.trim().replace(/ /g, '').replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));
.trim()
supprime les espaces de début et de fin
.replace(/ /g, '')
supprime
.replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));
supprime les balises vides
var trim = your_string.replace(/^\s+|\s+$/g, '');
01). Si vous devez supprimer uniquement les espaces blancs de début et de fin, utilisez ceci:
var address = " No.255 Colombo "
address.replace(/^[ ]+|[ ]+$/g,'');
cela retournera la chaîne "No.255 Colombo"
02). Si vous devez supprimer tous les espaces, utilisez ceci:
var address = " No.255 Colombo "
address.replace(/\s/g,"");
cela retournera la chaîne "No.255Colombo"