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);
    };
  • 相关阅读:
    (40)C#windows服务控制
    (6)C#事务处理
    (1)sqlite基础
    bzoj 2456 mode
    bzoj 2763 [JLOI2011]飞行路线
    bzoj1010[HNOI2008] 玩具装箱toy
    bzoj1034 [ZJOI2008]泡泡堂BNB
    [bzoj1059] [ZJOI2007] 矩阵游戏 (二分图匹配)
    [bzoj1066] [SCOI2007] 蜥蜴
    bzoj1072 [SCOI2007]排列perm
  • 原文地址:https://www.cnblogs.com/OleRookie/p/6041823.html
Copyright © 2011-2022 走看看