2016-02-28 57 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)。當然,你可以小心一些,但是如果可能的話,我會認爲它更安全(也可能更容易),或者如果正則表達式不是太複雜,可以手動做。

我認爲這是說

有些人的地方,老的一個,當遇到一個問題,想 「我知道,我將使用正則表達式。」現在他們有兩個問題。 - 傑米·薩溫斯基

持有真理;-)