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>