指定されたHTML文字列から先頭と末尾の空白を削除する方法は?


177

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


あなたの本当の問題は何ですか?ドキュメントにノードを挿入する前に空白を削除しますか?
Rob W

先頭の空白と末尾の空白をすべて削除したい。C#のTrimメソッドと同じですが、空白も削除されます。
スニル

トリミングはJavaScript <br /> <br /> <br /> <br />すべての先頭と末尾の空白使用:だから私の例では、私は最終的にトリミングした後、次を取得する必要があります
スニル

あなたはこれを解決した場合、私は知りませんが、あなたはこれらのソリューションのいずれかを試みることができる@Sunil:stackoverflow.com/questions/16708158/...
クリス・ベイカー

回答:


244

文字列の方法を参照してください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,'');  
  };  
} 

...これにより、プールの浅い端でまだ泳いでいるブラウザのネイティブプロトタイプにメソッドが挿入されます。


3
それはすべてのブラウザ(でサポートされていませんbecaase私は、正規表現の道を好むだろう咳咳 IE <9)。
PeeHaa

2
Trimメソッドは空白を削除せず、空白のみを削除します。だから私が探しているものではありません。
Sunil、

8
「ホワイトスペース」が何であるかはわかりませんが、trimは、スペース文字だけでなく、一般にホワイトスペース(改行、スペース、タブなど)を削除します。
bsa

2
@bsa彼は「HTMLのレンダリング結果の視覚的に空白の領域」のように、視覚的な意味で「空白」を意味することを理解し、次に「brタグによって引き起こされる改行を除く」というコメントを追加しました。
クリスベイカー

2
なぜ170票の回答にチェックマークがないのですか?SOがときどき私を混乱させます。
tcoulson 2018

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

古いブラウザの場合、正規表現を使用します

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

2
「[]」は「」とまったく同じです。正確に1文字の文字グループは、..まあ...正確に1文字です。
フリムジー2015年

2
@Flimzy:はい、書く方が理にかなっているでしょうし[\t\n\ ]、その\s代わりに[ ]意味がありません。
erik 2015

11
string.replace(/^\s+|\s+$/g, "");

質問を読ん&nbsp;で、通常の空白の代わりに使用されます。さらに、空白はタグ内に含まれています。
Rob W

6

コードファイルのように複数行の文字列で作業している場合:

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

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

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

あなたは追加する必要がありますmultilineあなたの正規表現にフラグを、^そして$ラインごとに一致します:

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

ドキュメントからの関連引用:

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


4

私はこれが非常に古い質問であることを知っていますが、それでもまだ受け入れられた答えがありません。「空」の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, "")); 空のタグを削除します


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

1
<br />や<p>&nbsp;&nbsp; </ p> <div>&nbsp; </ div>などの空白は削除されますか?単純なスペースのトリミングは問題ありません。私が求めているのは、その空白の削除です。
Sunil 2013

それは、ホワイトスペースを削除します
user2086641

3

01)。先頭と末尾の空白のみを削除する必要がある場合は、次のようにします。

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

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

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

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

これは文字列「No.255Colombo」を返します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.