zoukankan      html  css  js  c++  java
  • avalon 过滤器 字符串截取

    /**
    * 对长字符串截短,以字符长度截取,中文占两字符;{{str|truncatex(4,'...')}}
    * @param str
    * @param length,新字符串长度(按照英文字符算,一个中文占两字符),包含truncation的字符个数
    * @param truncation,新字符串的结尾的字段
    * @returns {返回新字符串}
    */
    avalon.filters.truncatex = function (str, length, truncation) {
        var chinese_pattern = /[u4E00-u9FA5]|[uFE30-uFFA0]/gi;
        // [u4E00-u9FA5]表示汉字,[uFE30-uFFA0]表示全角
        str = str || " ";
        length = length || 30;
        truncation = typeof truncation === "string" ? truncation : "...";
        var chineseIn = function (s) {
            return chinese_pattern.exec(s) ? true : false;
        };
        var calcSize = function (source) {
            var strTemp = source.replace(chinese_pattern, "aa");
            return strTemp.length;
        };
        var recursion = function (source, length) {
            if (calcSize(source) <= length || (!chineseIn(source))) {
                return source;
            } else {
                return recursion(source.slice(0, source.length - 1), length);
            }
        };
        var sliceLength = length - truncation.length;
        return calcSize(str) > length ? recursion(str.slice(0, sliceLength), sliceLength) + truncation : String(str);
    };
  • 相关阅读:
    第三个冲刺周期第1天
    第二个冲刺周期第7天
    第二个冲刺周期第6天
    第二个冲刺周期第5天
    电梯调度系统最终版
    电梯调度系统迟真真&冯小兰
    软件工程之课程评价czz
    《代码大全2》读后感czz
    迟真真假如历史可以重来
    十天冲刺任务迟真真
  • 原文地址:https://www.cnblogs.com/OleRookie/p/6041823.html
Copyright © 2011-2022 走看看