将字符串中的所有数字放入数组中

rau*_*aul -2 javascript

假设我有一个这样的字符串:1-4,9-12.有什么方法我可以得到一个包含这个的数组:[1,4,9,12]

p.s*_*w.g 5

只需使用正则表达式:

"1-4,9-12".match(/\d+/g) // ["1", "4", "9", "12"]
Run Code Online (Sandbox Code Playgroud)

正则表达式\d+匹配一个或多个十进制数字的任何序列.global(g)标志确保将所有匹配捕获到结果数组中.

结果数组将包含字符串.如果要解析这些数字,可以将Number函数(或parseFloat)与map*一起使用:

"1-4,9-12".match(/\d+/g).map(Number) // [1, 4, 9, 12]
Run Code Online (Sandbox Code Playgroud)

*map需要支持ECMAScript 5.1或更高版本的浏览器.对于旧版浏览器,要么填充方法(请参阅MDN文章中的示例),请使用具有类似功能的库(如jQueryunderscore.js),或使用简单for循环.