javascript - typescript parseInt beklenildiği gibi çalışmıyor, NaN alınıyor


Basit bir stringi sayıya çevirmeye çalışıyorum ama NaN alıyorum,

Dize "A20181" ... farklı web sitelerinde birkaç gönderi okudum ama çözümü bulamadım...

Typescript'te bir stringi sayıya çevirmek javascript gibi değil mi? Ben benzer bir şey yaptığımı hatırlıyorum ve çalışıyordu, neyi yanlış yapıyorum?

var text = 'A20181'
var integer = parseInt(text, 10)

console.log(integer) // receiving NaN....

Bunu nasıl yapabilirim?

Cevap #1

Başlangıçta parseInt() değil, String.prototype.replace() kullanmanız gerekir, daha sonra bunu tamsayı yapmak için parseInt() kullanabilirsiniz. Çünkü parseInt() - döndürür

Verilen dizeden ayrıştırılmış bir tam sayı. Eğer ilk karakter bir sayıya dönüştürülemiyorsa, NaN döndürülür.

var text = 'A20181A'
var integer = parseInt(text.replace(/\D/g, ""),10); //replace that is non-digit character

console.log(integer) 

MDN'e bakın

Cevap #2

Bu soru Typescript ile ilgili değil, sayısal olmayan bir dizeyi ayrıştırmaya çalışıyorsunuz. ParseInt, "10" gibi sayısal olan bir dizeyi ayrıştırmak için tasarlanmıştır.

Sonra o diziyi çözümlemek için A'yı kaldırabilirsiniz.

var text = 'A20181'
var integer = parseInt(text.replace(/[^\d]*/, ''), 10)

console.log(integer)