Reputation: 10525
This will alert 23.
alert(parseInt('23 asdf'));
But this will not alert 23 but alerts NaN
alert(parseInt('asdf 23'));
How can I get number from like 'asd98'
?
Upvotes: 9
Views: 33305
Reputation: 3445
function toNumeric(string) {
return parseInt(string.replace(/\D/g, ""), 10);
}
Upvotes: 3
Reputation: 382092
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);
Upvotes: 21
Reputation: 9633
You have to use regular expression to extract the number.
var mixedTextAndNumber= 'some56number';
var justTheNumber = parseInt(mixedTextAndNumber.match(/\d+/g));
Upvotes: 1