20

次のようなテキストがあります-

"    tushar is a good      boy     "

JavaScript を使用して、文字列内の余分な空白をすべて削除したいと考えています。

結果の文字列には、空白が 1 つだけではなく、複数の空白があってはなりません。さらに、最初と最後に空白を入れてはいけません。したがって、私の最終的な出力は次のようになります-

"tushar is a good boy"

現在、次のコードを使用しています-

str.replace(/(\s\s\s*)/g, ' ')

文字列の先頭と末尾の空白を処理しないため、これは明らかに失敗します。

4

7 に答える 7

31

String#replaceこれは、1 回の呼び出しで実行できます。

var repl = str.replace(/^\s+|\s+$|\s+(?=\s)/g, "");

// gives: "tushar is a good boy"
于 2013-08-05T19:20:46.250 に答える
7

これはうまく機能します:

function normalizeWS(s) {
    s = s.match(/\S+/g);
    return s ? s.join(' ') : '';
}
  • 先頭の空白をトリムします
  • 末尾の空白をトリムします
  • タブ、改行、および複数のスペースを単一の通常のスペースに正規化します
于 2013-08-05T19:29:03.317 に答える
3

誰もが について不平を言っているので.trim()、次を使用できます。

str.replace(/\s+/g,' ' ).replace(/^\s/,'').replace(/\s$/,'');

JSFiddle

于 2013-08-05T19:25:37.040 に答える
-1

試す

var str = "    tushar is a good      boy     ";
str = str.replace(/^\s+|\s+$/g,'').replace(/(\s\s\s*)/g, ' ');

最初の置換は、文字列の先頭と末尾のスペースを削除します。

于 2013-08-05T19:25:36.957 に答える