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

时间:2014-07-04 04:18:04

标签: javascript

假设我有一个这样的字符串:1-4,9-12。是否有某种方法可以获得包含此字符的数组:[1,4,9,12]

2 个答案:

答案 0 :(得分:5)

只需使用regular expression

"1-4,9-12".match(/\d+/g) // ["1", "4", "9", "12"]

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

结果数组将包含字符串。如果您要解析这些数字,可以使用Number函数(或parseFloat)和map *,如下所示:

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

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

答案 1 :(得分:2)

在javascript中:

var string = "1-4,9-12";
    string = string.replace(/-/g, ',');
var arr = string.split(',');   //arr is the array that you need.