如何在JavaScript中删除任何字符串中的tab?
当我得到字符串时,它是这样的缓冲区:
<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(...)构造函数。
如果我不使用它,我会得到对象没有方法替换。
假设content是我想要解析的字符串,它通过字母来解析它,意思是:
'\t session'
变成这样:
's','e','s','s','i','o','n'
为什麽?
2条答案
按热度按时间jv4diomz1#
问题可能在于如何定义
content
。如果
content=='\t session'
,这意味着
content==' session'
。顺便说一下,
String(...)
是不必要的。达到相同的结果。
编辑:
String(array)
不像你期望的那样工作。您必须在拆分字符串之前执行替换,或者单独对数组的每个元素执行替换。
而不是
尝试
请注意,
replace('\t', '')
将仅替换第一次出现的\t
。要执行全局替换,请使用RegExp Alex K。建议:zynd9foi2#
您需要一个regexp来替换所有出现的项;
(g为全局标志)
/^\t+/
仅限于替换 * 前导 * 制表符,/^\s+/
包括"\t\t var" -> "var"
所需的任何前导空格更新
你还没有说缓冲区是如何接收的&它是什么类型的,我最接近的猜测,虽然它是一个奇怪的事情接收;