So if I had the following string:
\'(01) Kyle Hall - Osc (04) Cygnus - Artereole (07) Forgemasters - Metalic (10) The Todd Terry Project - Back to the Beat (14)
var str = '(01) Kyle Hall - Osc (04) Cygnus - Artereole (07) Forgemasters - Metalic (10) The Todd Terry Project - Back to the Beat (14) Broken Glass - Style of the Street';
var nums = str.match(/\d+/g);
nums.map(function (num) {
return parseInt(num, 10);
});
For browsers that does not support Array.prototype.map
, use this code:
var str = '(01) Kyle Hall - Osc (04) Cygnus - Artereole (07) Forgemasters - Metalic (10) The Todd Terry Project - Back to the Beat (14) Broken Glass - Style of the Street';
var nums = str.match(/\d+/g);
for (var i = 0; i < str.length; i++) {
str[i] = parseInt(str[i], 10);
}
Use a regular expression:
var numbers = str.match(/\d+/g);
This will result in ["01", "04", "07", "10", "14"]
(array of strings). If the type of the elements matters to you you can follow up with .map(Number)
to convert to numbers:
var reallyNumbers = str.match(/\d+/g).map(Number);
which will result in [1, 4, 7, 10, 14]
.
Note that map is not available in IE earlier than version 9, so depending on your compat requirements you might need a polyfill. There's a ready-made one on MDN.