美文网首页
JS如何截取完整带表情的字符串

JS如何截取完整带表情的字符串

作者: 叫我魏大川 | 来源:发表于2019-12-09 15:57 被阅读0次

不要直接通过字符串截取。而是通过先转化成array,再通过array的方法取出来拼接。例如:截取nikename字符串的前4位,后面的拼接...

if(nikename.length>4){
        let nikeArr = Array.from(nikename);
        nikename = nikeArr.slice(0, 4).join('') + '...';
   }

涉及到字符串中有特殊字符的,比如微信昵称等,有时候有需要截取前几位的需求,一般两种解决方案。方法一是直接截取字符串,方法二就是给控件设置物理长度,让其只能显示大概四个汉字的宽度。
方法一遇见特殊字符串,比如正好在中间带表情或小图片啥的,截取后基本就完蛋了,后面会显示空白(在微信浏览器中)。还有的会截取部分特殊字符的编码导致出现问号。
方法二更不合适,因为字体或字符的物理宽度根本不一致,会导致半截字体的出现等问题。

所以,比较完美的方法就是先转换成数组再截取拼接。

相关文章

网友评论

      本文标题:JS如何截取完整带表情的字符串

      本文链接:https://www.haomeiwen.com/subject/qyabgctx.html