Подтвердить что ты не робот

Удалить вкладку ('\ t') из строки javascript

Как удалить вкладку из любой строки в javascript?

когда я получаю свою строку, он приходит как буфер, подобный этому:

<Buffer 0d 0a 3c 25 72 65 73 70 6f 6e 73 65 2e 73 74 61 74 75 73 20...>

 function translate(data) {

  var content = data.toString().split('\r\n');

  }

а затем я выполняю следующее...

например, у меня есть следующие строки:

 '\t\t var session = request.getSession();'
 '\t\t session["user"] = {};'

и я просто хочу, чтобы это было:

'var session = request.getSession();'
'session["user"] = {};'

кстати, когда я делаю:

content=String(content).replace('\t','');

вот почему мне нужен конструктор String (...).

если я его не использую, плохой объект не заменит метод.

Предполагая, что содержимое - это строка, которую я хочу проанализировать, она анализирует ее буквой, означая это:

'\t session'

становится следующим:

's','e','s','s','i','o','n'

почему?

4b9b3361

Ответ 1

Проблема, вероятно, в том, как вы определяете content.

Если content=='\t session',

`content=String(content).replace('\t','');`

означает, что content==' session'.

В боковом примечании String(...) не требуется.

`content=content.replace('\t','');`

достигает того же результата.

Edit:

String(array) работает не так, как вы ожидаете.

Вам нужно либо выполнить замену, прежде чем разбить строку, либо выполнить замену на каждом элементе массива отдельно.

Вместо

var content = data.toString().split('\r\n');
content=String(content).replace('\t','');

попробовать

var content = data.toString().replace('\t', '').split('\r\n');

Обратите внимание, что replace('\t', '') заменит только первое вхождение \t. Чтобы сделать глобальную замену, используйте RegExp Alex K., предложив:

var content = data.toString().replace(/\t/g, '').split('\r\n');

Ответ 2

Вам нужно regexp для замены всех вхождений;

content = content.replace(/\t/g, '');

(g - глобальный флаг)

/^\t+/ ограничивает замену только ведущих вкладок, /^\s+/ содержит любые ведущие пробелы, которые вам нужны для "\t\t var" -> "var"

Обновление

Вы не сказали, как принимается буфер и какой тип он есть, мое самое близкое предположение, хотя его странная вещь получать;

var test_buffer_array = "\x0d \x0a \x3c \x25 \x72 \x65 \x73 \x70 \x6f \x6e \x73 \x65 \x2e \x73 \x74 \x61 \x74 \x75 \x73 \x20".split(" ")

translate(test_buffer_array);

function translate(data) {
    var content = data.join("").replace(/^\t+/gm, '');
    print(content);
}

result: "<%response.status"