比如 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>