从字符串javascript中删除选项卡('\ t')

Itz*_*984 21 javascript string parsing

如何从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');

  }
Run Code Online (Sandbox Code Playgroud)

然后我执行以下操作......

例如,我有这些线:

 '\t\t var session = request.getSession();'
 '\t\t session["user"] = {};'
Run Code Online (Sandbox Code Playgroud)

而我只是希望它是:

'var session = request.getSession();'
'session["user"] = {};'
Run Code Online (Sandbox Code Playgroud)

顺便说一下,当我这样做时:

content=String(content).replace('\t','');
Run Code Online (Sandbox Code Playgroud)

这就是我需要String(...)构造函数的原因.

如果我不使用它,生病得到对象没有方法替换.

假设content是我要解析的字符串,它按字母解析它意味着:

'\t session'
Run Code Online (Sandbox Code Playgroud)

成为这个:

's','e','s','s','i','o','n'
Run Code Online (Sandbox Code Playgroud)

为什么?

Den*_*nis 25

问题可能在于您如何定义content.

如果content=='\t session',

`content=String(content).replace('\t','');`
Run Code Online (Sandbox Code Playgroud)

意味着content==' session'.

另一方面,这String(...)是不必要的.

`content=content.replace('\t','');`
Run Code Online (Sandbox Code Playgroud)

实现相同的结果.

编辑:

String(array) 不像你期望的那样工作.

您必须在拆分字符串之前执行替换,或者分别对阵列的每个元素执行替换.

代替

var content = data.toString().split('\r\n');
content=String(content).replace('\t','');
Run Code Online (Sandbox Code Playgroud)

尝试

var content = data.toString().replace('\t', '').split('\r\n');
Run Code Online (Sandbox Code Playgroud)

请注意,replace('\t', '')它将仅替换第一次出现的\t.要进行全局替换,请使用RegExp Alex K.建议:

var content = data.toString().replace(/\t/g, '').split('\r\n');
Run Code Online (Sandbox Code Playgroud)


Ale*_* K. 23

你需要一个正则表达式来替换所有出现的事件;

content = content.replace(/\t/g, '');
Run Code Online (Sandbox Code Playgroud)

(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"
Run Code Online (Sandbox Code Playgroud)