JavaScript常見字符串方法

短橫變駝峯

student-man-xiaoming 變爲studentManXiaoming
方法1:
(1)用字符串的split方法變爲數組
(2)遍歷數組每一項,首字母都變爲大寫,然後與剩餘字母連接join

    <script type="text/javascript" charset="UTF-8">
        var str="student-man-xiaoming";
        //拆爲數組
        var strArr=str.split("-");
        console.log("第一步輸出:"+strArr);
        //遍歷數組,駝峯第一項不變爲大寫
        for(var i=1;i<strArr.length;i++){
            var chars=strArr[i];
            strArr[i]=chars[0].toUpperCase()+chars.slice(1);
        }
        console.log("第二步輸出:"+strArr);
        //join所有字符
        console.log("最終結果輸出:"+strArr.join(""));
    </script>

這裏寫圖片描述
方法2:

   <script type="text/javascript" charset="UTF-8">
        var str="student-man-xiaoming";
        //用正則表達式替換replace
        str=str.replace(/\-(\w)/g,function (match,$1) {
            return $1.toUpperCase();
        });
        console.log(str);
    </script>

這裏寫圖片描述

尋找連續三項的字符串

“aabbbccddddee”返回[2,3,4,7,8,9,10]
雙指針法99%能解決字符串問題。如:“最大連續相同的子串;最大連續重複子串”

這裏寫圖片描述

    <script type="text/javascript" charset="UTF-8">
       var str="aabbbccddddee";
       //指針的位置
        var i=0;
        var j=1;
        var result=[];
        //開始循環
        while(i<str.length){
         //判斷指針所指的數字是否相等
            if(str[i]!=str[j]) {
                //再判斷i和及是否相差3及以上
                if (j - i >= 3) {
                    //若true,則將index放入result數組中
                    for (var m = i; m <= j - 1; m++) {
                        result.push(m);
                    }
                }
                i = j;
            }
                //相等或不相等,都j++
                j++;
         }
        console.log(result);
    </script>

這裏寫圖片描述

給數字加上千分位符

12345678901,返回“12,345,678,901”
數組和字符串互換方法很好用,要敏感。實際上就是[12,345,678,901],然後join(“,”)。問題轉化爲:把12345678901拆分爲數組!

這裏寫圖片描述

    <script type="text/javascript" charset="UTF-8">
       var num=12345678901;
       //獲取數字位數
       var length=num.toString().length;
       //從-3位開始
       var start=-3;
       //向上取整3的倍數位結束
       var end=-Math.ceil(length/3)*3;
       //從-3位開始截取第一個片段
       var result=[num.toString().slice(-3)];
       console.log("第一段爲:"+result);
       //第一個片段以後,直到結束位,都每間隔3位截取一次
       for(var i=start-3;i>=end;i-=3){
           //逐漸向前插入片段
           var str=num.toString().slice(i,i+3);
           console.log("截取字段爲:"+str);
           result.unshift(str);
       }
       console.log("結果爲:"+result);
    </script>

這裏寫圖片描述

  <script type="text/javascript" charset="UTF-8">
       var str="12345678901";
       /*(?=)定語從句,$單詞末尾
       *從全局找距單詞末尾3或3的倍數的數字,並將其間隙替換成","*/

       str=str.replace(/\B(?=(\d{3})+$)/g,",");
       console.log(str);
    </script>

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章