zoukankan      html  css  js  c++  java
  • Discuz common.js代码注释(三)

    /**
    * 去除字符串左右两端的空格
    */
    function trim(str) { 
        return (str + '').replace(/(s+)$/g, '').replace(/^s+/g, '');
    }
    /**
    * 获取字符串长度(兼容IE:如果是IE,并且有换行符(
    )则替换为‘_’然后再计算长度)
    */
    function strlen(str) { //获取字符串长度
        return (BROWSER.ie && str.indexOf('
    ') != -1) ? str.replace(/
    ?
    /g, '_').length : str.length;
    }
    /**
    * 获取字符符串长度
    */
    function mb_strlen(str) { 
        var len = 0; // 声明长度
        for (var i = 0; i < str.length; i++) { //遍历str参数
            len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;//charCodeAt(i)>255是用来判断非常规字符的,如果是在 UTF-8编码下,一个汉字占3个字节,一个中文字符的占位是2个字节,英文字符是1个字节
        }
        return len; //返回字符串长度
    }
    /**
    * 将超过指定的最大长度(maxlen)以外的文字显示为dot(‘...’)
    */
    function mb_cutstr(str, maxlen, dot) { 
        var len = 0;  //声明长度
        var ret = ''; //声明返回值
        var dot = !dot ? '...' : dot;  //判断dot是否为空,如果为空dot默认为‘...’
        maxlen = maxlen - dot.length;  //获取最大长度和dot之间的长度值
        for (var i = 0; i < str.length; i++) {  //遍历目标字符str
            len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1; //如果是在 UTF-8编码下,一个汉字占3个字节,一个中文字符的占位是2个字节,英文字符是1个字节
            if (len > maxlen) { //判断len是否大于最大长度
                ret += dot;  //如果大于最大长度则加上dot后跳出循环
                break;  //跳出循环
            }
            ret += str.substr(i, 1);   //每次获取一个字并拼接在ret后面
        }
        return ret;  //返回结果
    }
    /**
    * 将str中匹配到search的值都替换为replace
    * 如果search、replace都为数组,则可理解为多替换
    * 如果 search:['1','2']、replace:['a','b']这样的值,那么会将1替换成a,将2替换成b,如果search的长度大于replace,则默认替换为replace的第一个值
    * search:正则; replace:需要替换的值(可以为数组); str:查找源; regswitch:正则的修饰符(可取值:‘i’、‘g’、‘ig’等)
    */
    function preg_replace(search, replace, str, regswitch) {
        var regswitch = !regswitch ? 'ig' : regswitch; //设置修饰符,如果regswitch为空则默认值:'ig'
        var len = search.length; //获取search长度
        for (var i = 0; i < len; i++) {  //遍历len
            re = new RegExp(search[i], regswitch);  //声明正则,并设置修饰符
            //将str中匹配到re的值替换为replace,如果replace为string类型,则直接替换,如果为数组,则替换为当前replace中对应的值
            str = str.replace(re, typeof replace == 'string' ? replace : (replace[i] ? replace[i] : replace[0]));
        }
        return str;//返回结果
    }
    
  • 相关阅读:
    for,while循环嵌套二次练习
    break语句;continue语句
    实际运用for、while循环嵌套
    for,while循环嵌套
    while循环
    if语法分支
    js读取cookie,并利用encrypt和decrypt加密和解密方法
    instance of的java用法
    objectmapper使用
    日志组件slf4j介绍及配置详解
  • 原文地址:https://www.cnblogs.com/love-is/p/4307720.html
Copyright © 2011-2022 走看看