JS使用技巧手記

1. 格式轉(zhuǎn)換:3,456,123轉(zhuǎn)為3456123

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

2.格式轉(zhuǎn)換:如3456123轉(zhuǎn)為3,456,123

function formatNum(num){
    var str_num = num + '';//轉(zhuǎn)換成字符串
    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. 隨機(jī)數(shù)生成

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

4. 格式化顯示數(shù)字

        var pi = 3.14159;
        console.log(pi.toFixed(2));//保留2位小數(shù)
        console.log(pi.toPrecision(9));//從左到右保留9位數(shù)字眠砾,不夠補(bǔ)0

5. 小數(shù)轉(zhuǎn)整數(shù)

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

6.實(shí)現(xiàn)字符串長度截取并在字符串后添加...

        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) {
                    // 每次截取一個(gè)字符
                    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. 時(shí)間日期格式轉(zhuǎn)換

        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'); //這里寫需要的轉(zhuǎn)換格式
        }
        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. 十六進(jìn)制顏色值的隨機(jī)生成

//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>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懒鉴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子碎浇,更是在濱河造成了極大的恐慌临谱,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奴璃,死亡現(xiàn)場(chǎng)離奇詭異悉默,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)苟穆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門抄课,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雳旅,你說我怎么就攤上這事剖膳。” “怎么了岭辣?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵吱晒,是天一觀的道長。 經(jīng)常有香客問我沦童,道長仑濒,這世上最難降的妖魔是什么叹话? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮墩瞳,結(jié)果婚禮上驼壶,老公的妹妹穿的比我還像新娘。我一直安慰自己喉酌,他們只是感情好热凹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泪电,像睡著了一般般妙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上相速,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天碟渺,我揣著相機(jī)與錄音,去河邊找鬼突诬。 笑死苫拍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旺隙。 我是一名探鬼主播绒极,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蔬捷!你這毒婦竟也來了集峦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤抠刺,失蹤者是張志新(化名)和其女友劉穎塔淤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體速妖,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡高蜂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罕容。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片备恤。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锦秒,靈堂內(nèi)的尸體忽然破棺而出露泊,到底是詐尸還是另有隱情,我是刑警寧澤旅择,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布惭笑,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沉噩。R本人自食惡果不足惜捺宗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望川蒙。 院中可真熱鬧蚜厉,春花似錦、人聲如沸畜眨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽康聂。三九已至贰健,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間早抠,已是汗流浹背霎烙。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工撬讽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蕊连,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓游昼,卻偏偏與公主長得像甘苍,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烘豌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容