为什么直接从变量复制文本,其长度立即减少?
注意:这发生在xulrunner应用程序中。 (可能在firefox中会发生同样的情况)
var data = NetUtil.readInputStreamToString(inputStream, inputStream.available(),{charset:"UTF-8"});
dump(data.length); //1050
document.body.innerHTML = data;
dump(document.body.innerHTML.length); //1027
if (data!=tempbody.innerHTML) dump("Content has been edited"); //wrong
/*
data:
first
second...
*/
当我打印两个字符串中的每个字符时,有些匹配为空,提取:
for(var i=0;i<data.length;i++) dump(data[i]+":"+tempbody.innerHTML[i]+".");
/*Output:
:f:f.i:i.r:r.s:s.t:t.
.
:
:s.
:e.s:c.e:o.c:n.o:d....
*/
我尝试删除数据中的\ r和\ n但只有2个字符少于1050-> 1048
data = data.replace('\r','').replace('\n','');
for(var i=0;i<data.length;i++) dump(data[i]+":"+tempbody.innerHTML[i]+".");
/*Output
:f:f.i:i.r:r.s:s.t:t.
.
:s.s:e.e:c.c:o.o:n.n:d.d:...
*/
答案 0 :(得分:1)
我不知道为什么我认为替换而不添加正则表达式实际上会替换文本中的每个字符:
data = data.replace(/\r/g,'');
(我刚刚将搜索更改为全局正则表达式) 现在长度匹配。