js提取/获取字符串里面连续的数字

比如 str="sdf342dsf453df2"  ,提取出去变为,[342,453];这里主要使用到方法是正则表达式.

具体看代码

<!DOCTYPE html>
<html>

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>


</body>

</html>

<script>
    

    var str = "013d1we22ewfa33rr4rwq0dsf00dsf9fas999";

    var getNum = function (Str,isFilter) {
   //用来判断是否把连续的0去掉
        isFilter = isFilter || false;
        if (typeof Str === "string") {
            // var arr = Str.match(/(0\d{2,})|([1-9]\d+)/g);
            //"/[1-9]\d{1,}/g",表示匹配1到9,一位数以上的数字(不包括一位数).
            //"/\d{2,}/g",  表示匹配至少二个数字至多无穷位数字
            var arr = Str.match( isFilter ? /[1-9]\d{1,}/g : /\d{2,}/g);
            console.log(arr);
            return arr.map(function (item) {
                //转换为整数,
                //但是提取出来的数字,如果是连续的多个0会被改为一个0,如000---->0,
                //或者0开头的连续非零数字,比如015,会被改为15,这是一个坑
                // return parseInt(item);
                //字符串,连续的多个0也会存在,不会被去掉
                return item;
            });
        } else {
            return [];
        }
    }
    console.log(getNum(str));//默认不加1,即不会把提取出来的0去掉
</script>

 

  

posted @ 2017-06-29 09:26  被折叠的记忆  阅读(13137)  评论(0编辑  收藏  举报