假设我有一个这样的字符串:1-4,9-12
。是否有某种方法可以获得包含此字符的数组:[1,4,9,12]
?
答案 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文章中的示例),使用具有类似功能的库,例如jQuery或underscore.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.