2016-02-28 53 views
0

如何在JavaScript中对ArrayBuffer进行正则表达式替换?如何在JavaScript ArrayBuffer上进行正则表达式替换?

从我可以告诉在JavaScript .replace需要一个String作为输入,不支持ArrayBufferhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

我的想法是将ArrayBuffer转换为String,然后做替换,然后将其转换回到ArrayBuffer - 如果这样做会造成数据丢失吗?

+0

是否'ArrayBuffer'包含无限制的数据一点点?那就是:每个字节组合都有可能吗? – deamentiaemundi

+0

这是正确的,'ArrayBuffer'是一个HTTP POST的原始主体。 –

回答

0

由于缓冲区包含任意数据的信息,比:是,可能会丢失数据。

甲JavaScript字符串被编码在16位的Unicode,所以该简化的例子

("asd\u0000asd").length 

返回7尽管具有遍布8个字节(它甚至可以在比Firefox其他浏览器返回3)。当然,你可以小心一些,但是如果可能的话,我会认为它更安全(也可能更容易),或者如果正则表达式不是太复杂,可以手动做。

我认为这是说

有些人的地方,老的一个,当遇到一个问题,想 “我知道,我将使用正则表达式。”现在他们有两个问题。 - 杰米·萨温斯基

持有真理;-)