5.8、循序渐进正则表达式(下一节:正则表达式)

一、需求
找出所有数字组成一个数组
str=‘123asd12sad122as1’
结果是
arr=[123,12,122,1]

  var str = '212asdas234dfgh67a3'

        function getNumberArr(str) {
            var arr = []
            var s = ''
            for (var i = 0; i < str.length; i++) {
                // console.log(str[i])
                if (!isNaN(str[i])) {
                    // 是数字
                    s += str[i]
                } else {
                    if (s !== '') {
                        arr.push(s);
                        s = ''
                    }
                }
            }
            // 最后在执行一次
            if (s !== '') {
                arr.push(s);
                s = ''
            }
            return arr
        }
        console.log(getNumberArr(str))

方法二、

// 方法二
function getNumberArr(str) {
    var s = ''
    var Newarr = []
    for (i = 0; i < str.length; i++) {
        s += Number(str[i])
            //console.log(s) //212NaNNaNNaNNaNNaN234NaNNaNNaNNaN67NaN3
    } // 拆成数组
    var arr = s.split('NaN')
    for (var j = 0; j < arr.length; j++) {
        if (arr[j]) {
            Newarr.push(arr[j])
        }
    }
    return Newarr
}
console.log(getNumberArr(str)) //["212", "234", "67", "3"]
    // 方法三 正则
var str = '212asdas234dfgh67a3'

function getArr(str) {
    return str.match(/\d+/g)
}
console.log(getArr(str))

// ["212", "234", "67", "3"]

版权声明:本文为bin_2659017380原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。