Discuz common.js代码注释(三)

/**
* 去除字符串左右两端的空格
*/
function trim(str) {
    return (str + ‘‘).replace(/(\s+)$/g, ‘‘).replace(/^\s+/g, ‘‘);
}
/**
* 获取字符串长度(兼容IE:如果是IE,并且有换行符(\n)则替换为‘_’然后再计算长度)
*/
function strlen(str) { //获取字符串长度
    return (BROWSER.ie && str.indexOf(‘\n‘) != -1) ? str.replace(/\r?\n/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;//返回结果
}
时间: 2024-10-06 02:15:43

Discuz common.js代码注释(三)的相关文章

Discuz common.js代码注释

/* [Discuz!] (C)2001-2099 Comsenz Inc. This is NOT a freeware, use is subject to license terms $Id: common.js 2105 2014-06-23 09:34:12Z hypowang $ */ //封装获取为指定id的文档对象 //如果为空则返回null function $(id) { return !id ? null : document.getElementById(id); } f

Discuz common.js代码注释(二)

//获取浏览器版本号 function browserVersion(types) { var other = 1; //默认版本号 for (i in types) { //遍历types var v = types[i] ? types[i] : i; if (USERAGENT.indexOf(v) != -1) { //USERAGENT:浏览器请求头的User-Agent属性 var re = new RegExp(v + '(\\/|\\s|:)([\\d\\.]+)', 'ig')

1在html中添加js代码的三种方式

1.第一种方式:在时间句柄后太假js代码: 例如浏览器弹出对话框; 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 2 "http://www.w3.org/TR/html4/loose.dtd"> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content=&qu

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

本文标签:   程序员 php Discuz的核心代码 框架 深度学习框架 阅读优秀的代码,是技术水平成长的最佳途径.记得每个进来的新人,我都做过阅读优秀代码的要求,但几乎都只能坚持很少一段时间而已. 前晚大家还在开玩笑的讨论,都是因为看了前人的一些写法,才学会了一些乱七八糟的花招. 晚上我又开始重新阅读Discuz的核心代码,花了1h多的时间,才完成一个core文件的注释. 注释后的代码: <?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * Th

js/javascript代码注释规范与示例

注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到.没有注释的代码都不是好代码.为了别人学习,同时为了自己以后对代码进行‘升级’,看看js/javascript代码注释规范与示例.来自:http://www.56.com/style/-doc-/v1/tpl/js_dev_spec/spec-comment.html 文件注释 文件注释位于文件的最前面,应包括文件的以下信息:概要说明及版本(必须)项目地址(开源组件必须)版权声明(必须)开源协议(开源组件必须)版本号(必须)修改时间(

编写高质量JS代码的68个有效方法(三)

[20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table,

如何才能优雅地书写JS代码

第一:关于匿名函数的使用 要避免全局变量泛滥, 可以考虑使用匿名函数, 把不需要在外部访问的变量或者函数限制在一个比较小的范围内. 例如以下代码: <script> function func1(){ var list = ["a", "b", "c"]; for(var i = 0; i < list.length; i++){ //.. }; } func1(); // 自动运行 </script> 上述代码的作

DZ3.2文章内容页代码注释,很不错的。

DZ3.2文章内容页代码注释,很不错的.<!--{template common/header}--><!--e之路网络科技--文章页--> <script type="text/javascript" src="{$_G['setting']['jspath']}forum_viewthread.js?{VERHASH}"></script><script type="text/javascript&

开胃小菜——impress.js代码详解

README 友情提醒,下面有大量代码,由于网页上代码显示都是同一个颜色,所以推荐大家复制到自己的代码编辑器中看. 今天闲来无事,研究了一番impress.js的源码.由于之前研究过jQuery,看impress.js并没有遇到太大的阻碍,读代码用了一个小时,写这篇文章用了近三个小时,果然写文章比读代码费劲多了. 个人感觉impress.js的代码量(算上注释一共不到1000行)和难度(没有jQuery的各种black magic= =)都非常适合新手学习,所以写一个总结,帮助大家理解源码. 考