Пока Алекс отлично отвечает на ваш вопрос, у меня было несколько минут и я немного реорганизовал то, что использовал бы, если бы мне пришлось выполнить вашу задачу.
function stringToNum(str) {
// Object with all the string numbers and their digit equivalent
var replacements = {
"0": 0,
"0": 0,
"1": 1,
"1": 1,
"2": 2,
"2": 2,
"3": 3,
"3": 3,
"4": 4,
"4": 4,
"5": 5,
"5": 5,
"6": 6,
"6": 6,
"7": 7,
"7": 7,
"8": 8,
"8": 8,
"9": 9,
"9": 9,
};
var re = new RegExp(Object.keys(replacements).join("|"),"gi");
// Do all the replacements on characters matching object keys
return str.replace(re, function(matched){
return replacements[matched];
})
// Remove all the characters that are not a digit
.replace(/\D+/g, '');
}
console.log(stringToNum("a000b1c2d3e4f5g6h7i8j9"));
Этот путь должен быть быстрее иизбегайте ложной ловушки 0.
Здесь jsbin