seo网站推广建站服务商,买网站服务器,什么软件可以弄排名,wordpress 用户 注册页面模板今天遇到个需求#xff0c;需要在后端编辑前端底部显示的文字#xff0c;比如关于我们#xff0c;和电话等。但是这些文字或数字有长度限制#xff0c;太长就会导致页面变形。但是具体限制多大#xff0c;得根据前端页面#xff0c;还得看文字内容是什么。
汉字是 2 字节… 今天遇到个需求需要在后端编辑前端底部显示的文字比如关于我们和电话等。但是这些文字或数字有长度限制太长就会导致页面变形。但是具体限制多大得根据前端页面还得看文字内容是什么。
汉字是 2 字节数字和字母是 1 字节。大概占的大小也是 2 1。
这就需要获取字符串字节数。 new Blob([雨南]).size 但这个获取的字节数是 3因为 JavaScript 通常会使用UTF-8编码这是一种多字节编码方式其中英文字符通常占用1个字节而中文字符可以占用3个字节或更多。
因为JavaScript原生并不支持GBK编码所以可以用第三方库获取 gbk 编码字节。
npm install iconv-lite
function estimateObjectSize(obj) {let size 0;for (const key in obj) {if (obj.hasOwnProperty(key)) {size key.length * 2; // 属性名通常占用2字节的内存假设为UTF-16编码if (typeof obj[key] string) {size obj[key].length * 2; // 字符串占用2字节/字符UTF-16编码} else if (typeof obj[key] number) {size 8; // 数字通常占用8字节的内存双精度浮点数} else if (typeof obj[key] object obj[key] ! null) {// 对于嵌套对象这里可以递归调用estimateObjectSize或者简单地增加一个固定值来近似表示复杂对象的大小size 4; // 示例为嵌套对象增加4字节的内存占用近似值} else {// 其他类型可以根据需要添加大小估算逻辑}}}return size;
}const obj { key: value, number: 123 };
console.log(估计对象大小字节: ${estimateObjectSize(obj)}); 也可手动计算简单对象的大小近似
function estimateObjectSize(obj) {let size 0;for (const key in obj) {if (obj.hasOwnProperty(key)) {size key.length * 2; // 属性名通常占用2字节的内存假设为UTF-16编码if (typeof obj[key] string) {size obj[key].length * 2; // 字符串占用2字节/字符UTF-16编码} else if (typeof obj[key] number) {size 8; // 数字通常占用8字节的内存双精度浮点数} else if (typeof obj[key] object obj[key] ! null) {// 对于嵌套对象这里可以递归调用estimateObjectSize或者简单地增加一个固定值来近似表示复杂对象的大小size 4; // 示例为嵌套对象增加4字节的内存占用近似值} else {// 其他类型可以根据需要添加大小估算逻辑}}}return size;
}const obj { key: value, number: 123 };
console.log(估计对象大小字节: ${estimateObjectSize(obj)});
其实还有一个办法不设置限制长度超出长度时前端截断这样用户就会知道超出长度了。