Удалить возврат каретки и пространство из строки

Я хочу удалить возврат каретки и пробел из строки например:

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

Я хочу иметь результат:

t = "aaa bbb ccc"

Я использую этот, он удаляет возврат каретки, но у меня все еще есть пробелы

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

Пожалуйста, помогите мне.

Ответ 1

Try:

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

Тогда:

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

Второй должен избавиться от более чем 1 пробела

Ответ 2

Или вы можете использовать одиночное регулярное выражение:

t.replace(/\s+/g, ' ')

Также вам нужно вызвать .trim() из-за начального и конечного пробелов. Таким образом, полный будет:

t = t.replace(/\s+/g, ' ').trim();

Ответ 3

Fantastic! спасибо за обмен Улугбеком. Я использовал следующий код, чтобы иметь значения, разделенные запятыми, со сканера штрих-кода. В любое время, когда нажата кнопка сканера штрих-кода, возврат каретки и пробелы преобразуются в запятые.

Java Script:

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>

Ответ 4

Я бы предложил

  • очистить возврат каретки = > пробел
  • заменить несколько пробелов на один
  • для очистки ведущих и конечных пробелов (таких же, как jQuery trim())

Таким образом,

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