文字列操作

【JavaScript】文字列中のスペースを削除または連続するスペースを一つに統一する方法

更新日:2023/04/21

JavaScriptで文字列中のスペースを削除したり、連続するスペースを特定の個数に統一する方法をお伝えします。

 

連続するスペースに一致する正規表現

連続するスペースに一致する正規表現は、次のようになります。

/ +/

わかりにくいかもしれませんが、/+ の間には、スペース文字があります。

n回以上連続するのが条件のときは、スペースの数をn個に増やします。
例えば2回以上のときは、次のようになります。

/  +/

これも分かりにくいですが、/+ の間にスペースが2個あります。

実際のところ、見た目で分かりにくいので保守性に難ありですね。
次の方法の方が良いかもしれません。

/ {n,}/

nは数値に置き換えます。
nを3にすると、スペースが3回、4回、5回、...と、3回以上連続したときにマッチします。

 

スペースを削除する方法

スペースの削除はreplace()で、スペースを空文字に置き換えます。
しかしスペース一つ一つに置き換えが行われるので、少し非効率です。
連続するものは、一回で済ませたいですね。

そこで、連続するスペースに一致する正規表現を使って空文字("")に置き換えます。

const test = "abcd efg  hijk   lmn";
console.log( text.replace( / +/g , "") );
 // 結果: abcdefghijklmn

 

連続するスペースの数を統一する方法

連続するスペースの数を統一する場合、n回以上連続するのが条件のときの正規表現を使用して、統一後のスペースに置き換えます。

次のコードは、3個以上連続するスペースを二つのスペースに置き換えています。

const test = "abcd efg  hijk   lmn";
console.log( text.replace( / {3,}/g , " ".repeat(2) ) );
 // 結果: abcdefghijklmn

同じ文字の繰り返しは、repeat()メソッドが便利ですね。

全てのスペースを、同じ個数に統一するケースもあります。
この場合は、一回のみも含めて、全ての連続するスペースをマッチさせて置換します。

const test = "abcd efg  hijk   lmn";
console.log( text.replace( / +/g , " ".repeat(4) ) );
 // 結果: abcd    efg    hijk    lmn

更新日:2023/04/21

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。