web-dev-qa-db-ja.com

文字列からキャリッジリターンとスペースを削除する

例の文字列からキャリッジリターンとスペースを削除したい:

var t ="     \n \n    aaa \n bbb \n ccc \n";

結果として欲しいです:

t = "aaa bbb ccc"

私はこれを使用し、キャリッジリターンを削除しますが、まだスペースがあります

t.replace(/[\n\r]/g, '');

誰か助けてください。

21
Guest Guest

試してください:

 t.replace(/[\n\r]+/g, '');

次に:

 t.replace(/\s{2,10}/g, ' ');

2番目は1つ以上のスペースを取り除く必要があります

37
Andrew Newby

または、単一の正規表現を使用して行うことができます:

_t.replace(/\s+/g, ' ')
_

また、先頭と末尾のスペースのため、.trim()を呼び出す必要があります。したがって、完全なものは次のようになります。

_t = t.replace(/\s+/g, ' ').trim();
_
22
Ulugbek Umirov

私はお勧めします

  • キャリッジリターン=>スペースをクリアするには
  • 複数のスペースを単一のスペースに置き換える
  • 先頭および末尾のスペースをクリアする(jQuery trim()と同じ)

かくして

t.replace(/[\n\r]+/g, ' ').replace(/\s{2,}/g,' ').replace(/^\s+|\s+$/,'') 
2
Open SEO

素晴らしい! Ulugbekを共有してくれてありがとう。次のコードを使用して、バーコードスキャナーからコンマ区切りの値を取得しました。バーコードスキャナーボタンを押すと、キャリッジリターンとスペースがコンマに変換されます。

Javaスクリプト:

function KeyDownFunction() {
    var txt = document.getElementById("<%=txtBarcodeList.ClientID %>");
    txt.value = txt.value.replace(/\s+/g, ',').trim();
}

マークアップ:

<asp:TextBox ID="txtBarcodeList" runat="server" TextMode="MultiLine" Columns="100"
                    Rows="6" onKeyDown="KeyDownFunction()"></asp:TextBox>
0
Jesilo