js截取字符串(区分中文/英文)

/* 处理过长的字符串,截取并添加省略号
 * 注:半角长度为1,全角长度为2
 * str:字符串
 * len:截取长度
 * return: 截取后的字符串
 */
function cutbytestr(str, len) {
    var str_length = 0;
    var str_len = 0;
    str_cut = new String();
    str_len = str.length;
    for (var i = 0; i < str_len; i++) {
        a = str.charAt(i);
        str_length++;
        if (escape(a).length > 4) {
            //中文字符的长度经编码之后大于4
            str_length++;
        }
        str_cut = str_cut.concat(a);
        if (str_length >= len) {
            str_cut = str_cut.concat("…");
            return str_cut;
        }
    }
    //如果给定字符串小于指定长度,则返回源字符串;
    if (str_length < len) {
        return str;
    }
}

 

/* 处理过长的字符串,截取并添加省略号
 * str:字符串
 * len:截取长度
 * return: 截取后的字符串
 */
function cutstr(str, len) {
    var str_length = 0;
    var str_len = 0;
    str_len=str.length;
    if (str_len <= len) {
        return str;
    }else{
       str=str.substr(0,len);
       str = str.concat("…");
       return str;
    }
}

 

/* 取字符串长度
 * 注:汉字算两个字符,英文算一个字符
 * str:字符串
 * return: 长度
 */
function getStrLength(str) {   
    var cArr = str.match(/[^\x00-\xff]/ig);   
    return str.length + (cArr == null ? 0 : cArr.length);   
} 

 

posted @ 2013-02-27 14:29  white-poplar  阅读(927)  评论(0编辑  收藏  举报