javascript - Hur tar man bort ledande och avslutande vita tecken från en given HTML-sträng?


Jag har följande sträng som innehåller HTML. Vad skulle vara ett exempel på kod i JavaScript för att ta bort ledande och avslutande mellanslag som skulle visas vid renderingen av denna sträng? Med andra ord: hur kan jag få en sträng som inte visar några ledande eller avslutande mellanslag i HTML-renderingen men som i övrigt är identisk?

<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>

Svar #1

Se strängmetoden 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);

Redigera

Som nämnts i andra kommentarer är det möjligt att använda regex-metoden. trim-metoden är i praktiken bara ett alias för en regex:

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

... detta kommer att injicera metoden i den inhemska prototypen för de webbläsare som fortfarande simmar i den grunda delen av poolen.

Svar #2

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

för gamla webbläsare, använd regex

str = str.replace(/^[ ]+|[ ]+$/g,'')
//str = "my awesome string" 

Svar #3

Jag vet att detta är en väldigt gammal fråga men den har fortfarande inget accepterat svar. Jag ser att du vill ta bort följande: HTML-taggar som är "tomma" och blanksteg baserat på en HTML-sträng.

Jag har kommit på en lösning baserad på din kommentar för det resultat du söker:

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() tar bort ledande och avslutande blanksteg

.replace(/&nbsp;/g, '') tar bort &nbsp;

.replace(/<[^\/>][^>]*><\/[^>]+>/g, "")); tar bort tomma taggar

Relaterade artiklar