help-helper.js 1.54 KB
/**
 * [帮助中心 字符串截取]
 * @author: wsl(shuiling.wang@yoho.cn)
 * @date: 2016/12/02
 */
// 字符串截取
var cutStr = function(params) {
    var strLength = 0;
    var strCut = '';
    var i, curStr, addTxt, strLen;

    params.str = params.str.replace(/ /ig, '');
    params.str = params.str.replace(/(?=[^>]*(?=<))\s+/g, '');
    params.str = params.str.replace(/<(?!a|\/a).*?>/g, '');

    strLen = params.str.length || 0;

    if (!strLen) {
        return '';
    }

    if (params.type === 2) {
        addTxt = '';
    } else {
        addTxt = '<a href="' + params.url + '" class="show-all" target="_blank">查看详情&gt;</a>';
    }

    for (i = 0; i < strLen; i++) {
        curStr = params.str.charAt(i);
        strLength++;
        if (escape(curStr).length > 4) {
            // 中文字符的长度经编码之后大于4
            strLength++;
        }
        strCut = strCut.concat(curStr);
        if (strLength >= params.len) {
            strCut = strCut.slice(0, strCut.length - 10);
            strCut = strCut.concat('...' + addTxt);
            return strCut;
        }
    }

    // 如果给定字符串小于指定长度,则返回源字符串;
    if (strLength < params.len) {
        return params.str;
    }
};

// 搜索关键词标蓝显示
var keywordLabel = function(str, key) {
    var reg = new RegExp(key, 'gm');

    if (str === '') {
        return str;
    }

    str = str.replace(reg, '<i class="keyword">' + key + '</i>');
    return str;
};

exports.cutStr = cutStr;
exports.keywordLabel = keywordLabel;