zqwuwei的技术博客

理论指导实践,在实践中更好的理解理论
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

js字符串截取函数

Posted on 2012-02-21 13:59  zqwuwei  阅读(182)  评论(0编辑  收藏  举报
// 截取字符串
//
 参数: n 保留的字符串的长度(一个全角字符的长度为2)
function cutString(str, n) {
    var r = /[^\x00-\xff]/g;

    if (str.length <= Math.floor(n / 2) || str.replace(r, "xx").length <= n) {
        return str;
    }

    var m = Math.floor(n / 2);
    var tempLen = str.substr(0, m).replace(r, "xx").length;

    for (var i = m; i < str.length; i++) {
        tempLen += str.substr(i, 1).replace(r, "xx").length;

        if (tempLen > n) {
            return str.substr(0, i);
        } else if (tempLen == n) {
            return str.substr(0, i + 1);
        }
    }

    return str;
};