牛骨文教育服务平台(让学习变的简单)
博文笔记

js中字符串超长作固定长度加省略号(...)处理

创建时间:2017-08-02 投稿人: 浏览次数:1087
由于JavaScript是unicode编码的,所有的字符对于它来说一个就是一个,但是后台程序不是,通常在后台程序中一个中文是占两个字节的,这就导致了前后端校验长度不一致,这个问题可以通过正则来解决。

有时候为了美观,不影响布局和界面,会以一些文案进行截字,但是中文的宽度和英文的宽度不一样,如果按照英文标准来截中文的,或者按中文标准截英文的,显然会忽长忽短,特别是昵称这类容易既有中文又有英文的东西
/* * 
 用途:js中字符串超长作固定长度加省略号(...)处理
 参数说明:
    str:需要进行处理的字符串,可含汉字
    len:需要显示多少个汉字,两个英文字母相当于一个汉字。
 */
function beautySub(str, len) {
    var reg = /[u4e00-u9fa5]/g,    //专业匹配中文
        slice = str.substring(0, len),
        chineseCharNum = (~~(slice.match(reg) && slice.match(reg).length)),
        realen = slice.length*2 - chineseCharNum;
    return str.substr(0, realen) + (realen < str.length ? "..." : "");
}

参考以下链接优化:
http://blog.csdn.net/a82168506/article/details/7168017#javascript

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。