web-dev-qa-db-ja.com

指定されたHTML文字列から前後の空白を削除する方法

以下のHTML文字列があります。この文字列から前後の空白を削除するためのJavaScriptのサンプルコードは何でしょうか。

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

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

編集

他のコメントで述べたように、正規表現アプローチを使うことは可能です。 trimメソッドは、事実上正規表現の単なる別名です。

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

...これは、プールの浅い端でまだ泳いでいるブラウザのネイティブプロトタイプにメソッドを注入します。

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

古いブラウザではregexを使ってください

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

コードファイルのように複数行の文字列を扱う場合は、次のようにします。

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

そして、この結果を得るために、すべての先行行を置き換えたいです。

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

正規表現にmultilineフラグを追加する必要があります。^および$は1行ずつ一致します。

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

関連する引用 docsから

"m"フラグは、複数行の入力文字列を複数行として扱うことを示します。たとえば、 "m"が使用されている場合、 "^"と "$"は、文字列全体の先頭または末尾のみの一致から、文字列内の任意の行の先頭または末尾への一致に変わります。

6
Jaime Gómez

私はこれが非常に古い質問であることを知っています、しかしそれはまだ受け入れられた答えを持っていません。私はあなたが次のものを削除したいのを見ます: "空の" htmlタグとhtml文字列に基づく空白。

私はあなたが探している出力に対するあなたのコメントに基づく解決策を思い付きました:

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()は先頭と末尾の空白を削除します

.replace(/&nbsp;/g, '')&nbsp;を削除します

.replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));は空のタグを削除します

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

01)先頭と末尾の空白のみを削除する必要がある場合は、これを使用します。

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

これは文字列 "No.255 Colombo"を返します。

02)。空白をすべて削除する必要がある場合は、これを使用してください。

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

これは文字列 "No.255Colombo"を返します。

2