Удалить вкладку ('\ 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'
почему?
Ответы
Ответ 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"