js傳統方式取數字


  為啥要用正則?!我最開始也不是很理解,說實話也懶得學,但看看下面的if else 估計各位也是夠了,雖然正則難學,難記總歸類似這種操作應該是用正則去做的。下面我用傳統字符串操作做一個取數字的函數。

//函數findNum的任務 是找到字符串"1212 21  009  090 00"並打印出來
var str="1212dasdad21jif009fajf090adv00";
function findNum(str){
    var arr=[];//空數組一會兒存放變量;
    for(var i=0;i<str.length;i++){
        //遍歷字符串的每一位
        var oStr=str.charAt(i);
        //取0-9的范圍 超出范圍則不是數字
        if(oStr<='9'&&oStr>='0'){
            //數組push方法添加
            arr.push(oStr)    
        }
            
    }
    //返回結果
    return arr;
}
console.log(findNum(str));
/*打印結果 為["1", "2", "1", "2", "2", "1", "0", "0", "9", "0", "9", "0", "0", "0"]
  可以看到這並不是我們想要的結果 
*/

修改函數后

//增加一個新的變量tmp
var str="1212dasdad21jif009fajf090adv00";
function findNum(str){
    var arr=[];
    var tmp='';
    for(var i=0;i<str.length;i++){
        
        var oStr=str.charAt(i);
        
        if(oStr<='9'&&oStr>='0'){
            //是數字執行下邊操作
            tmp+=oStr;
        }else{
            //非數字執行下面操作
            if(tmp){
                arr.push(tmp);
                tmp='';    //清空變量,為遍歷下面的字符串使用;
            }
        }
            
    }
    //返回結果
    return arr;
}
console.log(findNum(str));
/*打印結果 為 ["1212", "21", "009", "090"]
  現在好多了,但是我們要找的結果應該是 ["1212", "21", "009", "090","00"]
  現在找到的是 ["1212", "21", "009", "090"]
  還少了一位
*/

再次修改函數:

//在循環結束后再次增加if else 判斷
var str="1212dasdad21jif009fajf090adv00";
function findNum(str){
    var arr=[];
    var tmp='';
    for(var i=0;i<str.length;i++){
        
        var oStr=str.charAt(i);
        
        if(oStr<='9'&&oStr>='0'){
            //是數字執行下邊操作
            tmp+=oStr;
        }else{
            //非數字執行下面操作
            if(tmp){
                arr.push(tmp);
                tmp='';    //清空變量,為遍歷下面的字符串使用;
            }
        }
        
            
    }
    //循環結束之后再次判斷,因為末尾是數字的話,循環結束后只會走是數字的操作,而添加到數組里的這個動作就沒有機會走了。
    if(tmp){
        arr.push(tmp);
        tmp='';    //最后一次清空變量
    }
    //返回結果
    return arr;
}
console.log(findNum(str));
/*打印結果 為["1212", "21", "009", "090", "00"]
  現在是我們想要的結果了
*/

以上經過2次三番的折騰終於達到我們想要的目的了,這個找數字的的函數還好,要是復雜點的匹配,曾加一推if else,想想也是夠了!我開始學習正則了,不再偷懶了(⊙o⊙)…

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM