webentwicklung-frage-antwort-db.com.de

Wie entferne ich führende und nachgestellte Leerzeichen aus einer bestimmten HTML-Zeichenfolge?

Ich habe die folgende HTML-Zeichenfolge. Was wäre Beispielcode in JavaScript, um führende und nachgestellte Leerzeichen aus dieser Zeichenfolge zu entfernen?

<p>&nbsp;&nbsp;</p>
<div>&nbsp;</div>
Trimming using JavaScript<br />
<br />
<br />
<br />
all leading and trailing white spaces
<p>&nbsp;&nbsp;</p>
<div>&nbsp;</div>
149
Sunil

Siehe die String-Methode trim() - https://developer.mozilla.org/de/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);

Bearbeiten

Wie in anderen Kommentaren erwähnt, ist es möglich, den Regex-Ansatz zu verwenden. Die trim-Methode ist eigentlich nur ein Alias ​​für einen Regex:

if(!String.prototype.trim) {  
  String.prototype.trim = function () {  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
} 

... Dadurch wird die Methode in den nativen Prototyp für diejenigen Browser eingefügt, die noch im flachen Ende des Pools schwimmen.

224
Chris Baker
var str = "  my awesome string   "
str.trim();    

verwenden Sie für alte Browser Regex

str = str.replace(/^[ ]+|[ ]+$/g,'')
//str = "my awesome string" 
57
KhanSharp
string.replace(/^\s+|\s+$/g, "");
11
Sandeep Manne

Wenn Sie mit einer mehrzeiligen Zeichenfolge wie einer Codedatei arbeiten:

<html>
    <title>test</title>
    <body>
        <h1>test</h1>
    </body>
</html>

Und möchte alle führenden Linien ersetzen, um dieses Ergebnis zu erhalten:

<html>
<title>test</title>
<body>
<h1>test</h1>
</body>
</html>

Sie müssen das Flag multiline zu Ihrem regulären Ausdruck hinzufügen. ^ und $ passen Zeile für Zeile zusammen:

string.replace(/^\s+|\s+$/gm, '');

Relevantes Zitat aus Dokumenten :

Das "m" -Flag gibt an, dass eine mehrzeilige Eingabezeichenfolge als mehrere Zeilen behandelt werden soll. Wenn beispielsweise "m" verwendet wird, ändern sich "^" und "$" vom Abgleich nur am Anfang oder Ende der gesamten Zeichenfolge bis zum Anfang oder Ende einer Zeile innerhalb der Zeichenfolge.

5
Jaime Gómez

Ich weiß, dass dies eine sehr alte Frage ist, aber sie hat noch keine akzeptierte Antwort. Ich sehe, dass Sie Folgendes entfernen möchten: HTML-Tags, die "leer" sind, und Leerzeichen, die auf einer HTML-Zeichenfolge basieren.

Ich habe eine Lösung gefunden, die auf Ihrem Kommentar für die gewünschte Ausgabe basiert:

Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces 

var str = "<p>&nbsp;&nbsp;</p><div>&nbsp;</div>Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces<p>&nbsp;&nbsp;</p><div>&nbsp;</div>";
console.log(str.trim().replace(/&nbsp;/g, '').replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));

.trim() entfernt führende und nachgestellte Leerzeichen

.replace(/&nbsp;/g, '') entfernt &nbsp;

.replace(/<[^\/>][^>]*><\/[^>]+>/g, "")); entfernt leere Tags

3
Anthony
var trim = your_string.replace(/^\s+|\s+$/g, '');
2
SenorAmor

01). Wenn Sie nur führende und nachgestellte Leerzeichen entfernen müssen, verwenden Sie Folgendes:

var address = "  No.255 Colombo  "
address.replace(/^[ ]+|[ ]+$/g,'');

dies wird String "No.255 Colombo" zurückgeben

02). Wenn Sie alle Leerzeichen entfernen müssen, verwenden Sie Folgendes:

var address = "  No.255 Colombo  "
address.replace(/\s/g,"");

dies wird den String "No.255Colombo" zurückgeben.

0