JS使用技巧手记

1. 格式转换:3,456,123转为3456123

function formatStr(str){
    return str.replace(/,/g,'');
}
//demo
var str = '3,456,123'
console.log(formatStr(str))

2.格式转换:如3456123转为3,456,123

function formatNum(num){
    var str_num = num + '';//转换成字符串
    var ret_num = '';
    var counter = 0;
    for(var i=str_num.length-1;i>=0;i--){
        ret_num = str_num.charAt(i) + ret_num;
        counter++;
        if(counter==3){
            counter = 0;
            if(i!=0){
                ret_num = ',' + ret_num;
            }
        }
    }
    return ret_num;
}
// demo:
var num = 3456123;
console.log(formatNum(num));

3. 随机数生成

        var rnd1 = Math.random();//返回0~1任意小数
        console.log(rnd1)
        var rnd2 = Math.floor(Math.random()*33);//返回0~33之间任意整数
        console.log(rnd2)

4. 格式化显示数字

        var pi = 3.14159;
        console.log(pi.toFixed(2));//保留2位小数
        console.log(pi.toPrecision(9));//从左到右保留9位数字,不够补0

5. 小数转整数

        var f = 1.5;
        console.log(Math.round(f));//四舍五入
        console.log(Math.ceil(f));//返回大于f的最小整数
        console.log(Math.floor(f));//返回小于f的最大整数

6.实现字符串长度截取并在字符串后添加...

        function cutstr(str, len) {
            var temp;
            var icount = 0;
            var patrn = /[^\x00-\xff]/;  //表示汉字或者全角,即ASCII 编码不在0-255的字符
            var strre = "";
            for (var i = 0; i < str.length; i++) {
                if (icount < len) {
                    // 每次截取一个字符
                    temp = str.substr(i, 1);
                    if (patrn.exec(temp) == null) {
                        // 如果是英文、半角
                        icount = icount + 1
                    } else {
                        // 如果是中文、全角
                        icount = icount + 2
                    }
                    // 字符串连接
                    strre += temp
                } else {
                    break
                }
            }
            return strre + "..."
        }
        // demo:
        console.log(cutstr("Tianzhihong", 4));
        console.log(cutstr("我是中国人", 5));

7. 获取主域名

        function getHost(url) {
            var host = "null";
            if(typeof url == "undefined"|| null == url) {
                url = window.location.href;
            }
            var regex = /^\w+\:\/\/([^\/]*).*/;
            var match = url.match(regex);
            if(typeof match != "undefined" && null != match) {
                host = match[1];
            }
            return host;
        }
        // demo:
        console.log(getHost("https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E4%B8%B4%E6%97%B6%20%E8%8B%B1%E6%96%87&rsv_pq=fe2c6b690033543f&rsv_t=e826BZYU7Lfmea068KJo57JWFCFA91Cos63Q9PCwIFlVuebah2RSbB0O94E&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=7&rsv_sug7=100&rsv_sug2=0&prefixsug=%25E4%25B8%25B4%25E6%2597%25B6%2520&rsp=0&inputT=9138&rsv_sug4=10044"))

8. 清除左右空格

        function trim(str){
            return str.replace(/(^\s*) | (\s*$)/g,"")
        }
        console.log(trim('tian   '));

9. 时间日期格式转换

        Date.prototype.Format = function(formatStr) {
            var str = formatStr;
            var Week = ['日', '一', '二', '三', '四', '五', '六'];
            str = str.replace(/yyyy|YYYY/, this.getFullYear());
            str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
            str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
            str = str.replace(/M/g, (this.getMonth() + 1));
            str = str.replace(/w|W/g, Week[this.getDay()]);
            str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
            str = str.replace(/d|D/g, this.getDate());
            str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
            str = str.replace(/h|H/g, this.getHours());
            str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
            str = str.replace(/m/g, this.getMinutes());
            str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
            str = str.replace(/s|S/g, this.getSeconds());
            return str;
        }
        function convertDate(str){
            var date = new Date(str);
            return date.Format('yyyyMMdd'); //这里写需要的转换格式
        }
        console.log(convertDate('2017-03-12'));

10. 加载样式文件

        function loadStyle(url){
            try{
                document.creatStyleSheet(url);
            }catch(e){
                var linkcss = document.createElement('link');
                linkcss.type = 'text/css';
                linkcss.rel = 'stylesheet';
                linkcss.href = url;
                var head = document.getElementsByTagName('head')[0];
                head.appendChild(linkcss);
            }
        }
        loadStyle('css/style.css');

11. 十六进制颜色值的随机生成

//js
        function randomColor(){
            var arrHex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],
                strHex="#",
                index;
                for(var i=0;i<6;i++){
                    index=Math.floor(Math.random()*16);
                    strHex+=arrHex[index];
                }
            return strHex;
        }
        document.getElementById('text').style.color = randomColor();
//html
<p id="text">我是中国人</p>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容