Javascript 将字符串截断为1 MB大小限制
我需要剪切字符串-基本上如果字符串长度超过1MB,我应该将其剪切到这个大小 我使用这些函数来检查字符串大小Javascript 将字符串截断为1 MB大小限制,javascript,Javascript,我需要剪切字符串-基本上如果字符串长度超过1MB,我应该将其剪切到这个大小 我使用这些函数来检查字符串大小 function __to_mb(bytes) { return bytes / Math.pow(1024, 2) } function __size_mb(str) { return __to_mb(Buffer.byteLength(str, 'utf8')) } 然后我像这样检查字符串的大小 if (__size_mb(str) > 1) { /* do som
function __to_mb(bytes) {
return bytes / Math.pow(1024, 2)
}
function __size_mb(str) {
return __to_mb(Buffer.byteLength(str, 'utf8'))
}
然后我像这样检查字符串的大小
if (__size_mb(str) > 1) { /* do something */ }
但是如何剪切呢?一个Javascript字符串由16位序列组成,其中一些字符使用一个16位序列,另一些字符需要两个16位序列 <> P>没有简单的方法来取一个字节,并考虑它完成了——在截断位置的两侧可能有一个2X 16位字符,然后将其切成两半。 为了安全切割,我们可以使用ES2015中引入的
str.codePointAt(index)
。它知道哪些字符是16位,哪些是2x 16位。它将这些16位值中的1或2组合成一个整数结果值
- 如果
返回一个值=codePointAt()
,那么在偏移量2^16
和index
处有一个2x 16位字符index+1
var str=“abç但是它会减少字符数量。我想要1 MB的大小。