• jquery截取、判断字符串的长度,中英文都可


    计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

    String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

    个人笔记:"aa" 只要是2个字节的单位都行;例如"01";

    success: function (data) {
                        data = eval(data);
                        for (var i = 0; i < data.length; i++) {
                            if (data[i].text.replace(/[^x00-xff]/g, "01").length > 16 && i!=0)
                            {
                                data[i].text = data[i].text.substring(0, 9) + "..."
                            }

            //data[i].text直接使用三元运算符(?:)有问题,原因暂时还不知道;

            ("#id").append("<option value="" + data[i].id + "" title="" + data[i].text + "">" + data[i].text + "</option>");
                    },

    //字符长度计算
    function getStrLength(str) {
    var cArr = str.match(/[^x00-xff]/ig);
    return str.length + (cArr == null ? 0 : cArr.length);
    }

     //JS处理字符长度 autoAddEllipsis("ABC测试D",6)

    /* 
     * 处理过长的字符串,截取并添加省略号 
     * 注:半角长度为1,全角长度为2 
     *  
     * pStr:字符串 
     * pLen:截取长度 
     *  
     * return: 截取后的字符串 
     */
    function autoAddEllipsis(pStr, pLen) {
    
        var _ret = cutString(pStr, pLen);
        var _cutFlag = _ret.cutflag;
        var _cutStringn = _ret.cutstring;
    
        if ("1" == _cutFlag) {
            return _cutStringn + "...";
        } else {
            return _cutStringn;
        }
    }
    
    /* 
     * 取得指定长度的字符串 
     * 注:半角长度为1,全角长度为2 
     *  
     * pStr:字符串 
     * pLen:截取长度 
     *  
     * return: 截取后的字符串 
     */
    function cutString(pStr, pLen) {
    
        // 原字符串长度  
        var _strLen = pStr.length;
    
        var _tmpCode;
    
        var _cutString;
    
        // 默认情况下,返回的字符串是原字符串的一部分  
        var _cutFlag = "1";
    
        var _lenCount = 0;
    
        var _ret = false;
    
        if (_strLen <= pLen / 2) {
            _cutString = pStr;
            _ret = true;
        }
    
        if (!_ret) {
            for (var i = 0; i < _strLen ; i++) {
                if (isFull(pStr.charAt(i))) {
                    _lenCount += 2;
                } else {
                    _lenCount += 1;
                }
    
                if (_lenCount > pLen) {
                    _cutString = pStr.substring(0, i);
                    _ret = true;
                    break;
                } else if (_lenCount == pLen) {
                    _cutString = pStr.substring(0, i + 1);
                    _ret = true;
                    break;
                }
            }
        }
    
        if (!_ret) {
            _cutString = pStr;
            _ret = true;
        }
    
        if (_cutString.length == _strLen) {
            _cutFlag = "0";
        }
    
        return { "cutstring": _cutString, "cutflag": _cutFlag };
    }
    
    /* 
     * 判断是否为全角 
     *  
     * pChar:长度为1的字符串 
     * return: true:全角 
     *          false:半角 
     */
    function isFull(pChar) {
        if ((pChar.charCodeAt(0) > 128)) {
            return true;
        } else {
            return false;
        }
    }
    View Code
  • 相关阅读:
    中文词频统计及词云制作
    字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理
    python第二节课
    Python第一节课
    了解大数据
    pcb结构定义
    一个完整的大作业
    中文词频统计及词云制作
    字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理
    Python输入输出练习
  • 原文地址:https://www.cnblogs.com/love201314/p/5432256.html
Copyright © 2020-2023  润新知