JavaScriptの文字列内の空白を削除する


100

正規表現の答えとともに、JavaScriptトリムに関するこの質問を読みました。

次に、トリミングによってHelloとWorldの間の内側のスペースが削除されることを期待します。

function myFunction() {
    alert("Hello World ".trim());
}

編集済み

なぜ私はそれを期待した!?

ナンセンス!明らかにトリムは内側のスペースを削除しません!先行と後続のスペースのみを削除します。それがトリムのしくみです。これは非常に間違った質問でした、私の謝罪。


10
trimは文字列の最初と最後から空白を削除します
Manse

3
トリムから空白を削除する前後の文字列。 Hello Worldはすでに「トリミング」されています
ロケットハズマット

ショーに@limelights代わりに「Hello World」の「HelloWorldの」
エルナンEche

4
@void:これは「トリミング」ではなく、別の問題です。
ロケットハズマット

回答:


236

スペース文字削除用

"hello world".replace(/\s/g, "");

すべての空白については、以下のコメントでロケットの提案を使用してください!


136
.replace(/ /g, '')複数のスペースがある場合は、使用することをお勧めします。
ロケットハズマット

@ロケット、それは絶対に本当です、まだ答えを更新していません!ありがとう!:)
Henrik Andersson

47
@Juhana:他の空白も削除したい場合は、次のようにします.replace(/\s/g, '')
ロケットハズマット

12
@RocketHazmatはい!正解!ただし、これは少し効率的かもしれません:str.replace(/ \ s + / g、 '')
jackocnr

3
@PitchiahNatarajan \sは、スペース、タブ、改行に一致します。
ロケットハズマット2017年

8

おそらく、受け入れられた回答にソリューション実装するのを忘れたためでしょう。それが機能するコードですtrim()

更新

この回答は古いブラウザにのみ適用されます。新しいブラウザは明らかにtrim()ネイティブをサポートしています。


2
必ずしもそうとは限りません。一部のブラウザにはそれが組み込まれています。:-P
Rocket Hazmat

1
現在、ほとんどの最新のブラウザーに存在しています-> kangax.github.com/es5-compat-table
マンス

1

Strings replaceメソッドを正規表現で使用できます。

"Hello World ".replace(/ /g, "");

replace()メソッドは、パターンの一部またはすべての一致が置換によって置き換えられた新しい文字列を返します。パターンは文字列またはRegExpです。

RegExp

  • / / -正規表現一致スペース

  • g-グローバルフラグ。最初の一致の後に停止するのではなく、すべての一致を見つける


1

使用できます

"Hello World ".replace(/\s+/g, '');

trim()文字列の末尾のスペースのみを削除します(チェーンの最初と最後)。この場合、同時に1つ以上のスペースを削除できるため、このregExpはより高速です。

空の置換文字列を '$'に変更すると、違いがより明確になります。

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // $Q$W$E$R$TY$

パフォーマンスの比較- /\s+/g高速です。こちらをご覧ください:http : //jsperf.com/s-vs-s


現在受け入れ答えは同じことを行います。これが回答よりもナノ秒以上速いことを示すいくつかの関連するテストを提示してください。
異教の猿

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