美文网首页
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