javascript - typescript parseInt fungerar inte som förväntat, får NaN
Jag försöker parsa en enkel sträng till ett nummer men jag får NaN,
Strängen är "A20181" ... jag har läst flera inlägg på olika webbplatser men jag hittar inte lösningen...
Att parsa en sträng till ett nummer i TypeScript är som i JavaScript, eller hur? Jag minns att jag gjorde något liknande och det fungerade, vad gör jag fel?
var text = 'A20181'
var integer = parseInt(text, 10)
console.log(integer) // receiving NaN....
hur kan jag göra detta?
Svar #1
Initialt behöver du String.prototype.replace(), inte parseInt() senare kan du använda parseInt() för att göra det till ett heltal. Eftersom parseInt() returnerar -
Ett heltal tolkat från den givna strängen. Om det första tecknet inte kan omvandlas till ett tal, returneras NaN.
var text = 'A20181A'
var integer = parseInt(text.replace(/\D/g, ""),10); //replace that is non-digit character
console.log(integer) Se MDN
Svar #2
Denna fråga är inte relaterad till Typescript, du försöker analysera en sträng som inte är ett nummer. ParseInt är avsedd att analysera en sträng som är ett nummer som exempelvis "10"
Du kan ta bort A och sedan analysera den strängen.
var text = 'A20181'
var integer = parseInt(text.replace(/[^\d]*/, ''), 10)
console.log(integer)