jquery 判断中文字符的长度

来源:互联网 发布:hp网络打印机怎么连接 编辑:程序博客网 时间:2024/05/17 17:14

jquery 判断中文字符的长度

方法一:使用正则表达式,代码如下:function getByteLen(val) {            var len = 0;            for (var i = 0; i < val.length; i++) {                 var a = val.charAt(i);                 if (a.match(/[^\x00-\xff]/ig) != null)                 {                    len += 2;                }                else                {                    len += 1;                }            }            return len;        }方法二:使用字符unicode判断:方法如下:function getByteLen(val) {            var len = 0;            for (var i = 0; i < val.length; i++) {               var length = val.charCodeAt(i);               if(length>=0&&length<=128)                {                    len += 1;                }                else                {                    len += 2;                }            }            return len;        }function queryTask(){    var taskNameQueryLength = getByteLen($("#taskNameQuery").val().trim());    if(taskNameQueryLength>4){        jAlert("任务名称长度为0-160位,其中中文算两个字符!", "系统提示");        return;    }    var scanTargetQueryLength = getByteLen($("#scanTargetQuery").val().trim());    if(scanTargetQueryLength>4){        jAlert("扫描目标长度为0-65535位!", "系统提示");        return;    }    gridQuery();}function getByteLen(val) {    var len = 0;    for (var i = 0; i < val.length; i++) {         var patt = new RegExp(/[^\x00-\xff]/ig);         var a = val[i];         if (patt.test(a))         {            len += 2;        }        else        {            len += 1;        }    }    return len;}

2。根据字符截取,超长用。。。

var a =autoAddEllipsis("中国移动通信中国移动通信中国移动通信中国移动通信中国移动通信", 50);var b =autoAddEllipsis("aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd", 50);alert(b)/*  * 处理过长的字符串,截取并添加省略号  * 注:半角长度为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;    }}
阅读全文
0 0
原创粉丝点击