This will alert 23.
alert(parseInt(\'23 asdf\'));
But this will not alert 23 but alerts NaN
alert(parseInt(\'asdf 23\'));
You have to use regular expression to extract the number.
var mixedTextAndNumber= 'some56number';
var justTheNumber = parseInt(mixedTextAndNumber.match(/\d+/g));
function toNumeric(string) {
return parseInt(string.replace(/\D/g, ""), 10);
}
You can use a regex to get the first integer :
var num = parseInt(str.match(/\d+/),10)
If you want to parse any number (not just a positive integer, for example "asd -98.43") use
var num = str.match(/-?\d+\.?\d*/)
Now suppose you have more than one integer in your string :
var str = "a24b30c90";
Then you can get an array with
var numbers = str.match(/\d+/g).map(Number);
Result : [24, 30, 90]
For the fun and for Shadow Wizard, here's a solution without regular expression for strings containing only one integer (it could be extended for multiple integers) :
var num = [].reduce.call(str,function(r,v){ return v==+v?+v+r*10:r },0);
parseInt('asd98'.match(/\d+/))
var num = +('asd98'.replace(/[a-zA-Z ]/g, ""));