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是怎样处理的?

以上问题都写在注释中,自己看一下是否考虑正确了吧。

 

 

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