JavaScript編程作業:字符串中分離出數字

在JavaScript的字符串中夾雜有數字信息,現在需要將數字提取出來。例如字符串"df454er49eg0ew8"需要提取454、49、0、8數字信息,以數組的形式展示出來['454','49','0','8']。請將下文代碼按題意補充完整。(模擬正則表達式)

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>JavaScript數字提取小作業</title>
</head>

<body>
    <script>
        var str='0re00e394tj340tu-2-jq-3qo00t66';
        var arr=[];
        //請補充代碼

    </script>
</body>

</html>

若採用正則表達式,可以非常方便快捷實現所需目的。但是不採用正則也可以實現對字符串的處理,主要是解題代碼過程的思路和一些細節知識點的注意。前端小白可以先敲一段代碼,再看參考代碼,以及後續思考的知識點是否能夠解答出來。

參考代碼:

 <script>
        var str = '0re00e394tj340tu-2-jq-3qo00t66';
        var arr = [];
        //請補充代碼
        var tmp = '';
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                tmp += str.charAt(i);
            } else {

                if (tmp) {
                    arr.push(tmp);
                    tmp = '';
                }
            }
        }

        if (tmp) {
            arr.push(tmp);
            tmp = '';
        }

        console.log(arr);  // => ["0", "00", "394", "340", "2", "3", "00"]
      
    </script>

思考:

1、下圖中方框部分的判斷代碼有什麼作用?

2、方框中爲什麼要用if判斷語句來進行執行代碼塊,去掉if行不行?如果不行會導致什麼情況?

3、1、字符串是遵循什麼樣的比較規則?字符串的大小對比規則,通過str.charAt(i)獲得的是索引位的字符串,可能是數字字符串,也可能是非數字字符串,對於str.charAt(i) >= '0' && str.charAt(i) <= '9'JS是怎樣處理的?

以上問題都寫在註釋中,自己看一下是否考慮正確了吧。

 

 

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