SORU
6 EKİM 2008, PAZARTESİ


Eğer bir dize geçerli bir sayı olup olmadığını kontrol etmek için JavaScript (dahili) bir yolu var mı?

Eski VB6 Isnumerıc aynı kavramsal alan içinde bir şey var umuyorum() fonksiyonu?

CEVAP
6 EKİM 2008, PAZARTESİ


Eğer bir numara ise eğer bir değişken (dize dahil) bir sayı olup olmadığını kontrol etmek için, kontrol edin:

Bu değişken içerip içermediğini dize veya bir sayı ne olursa olsun çalışır.

isNaN(num)     // returns true if the variable does NOT contain a valid number

Örnekler:

isNaN(123)       // false
isNaN('123')     // false
isNaN('1e10000') // false  (number is Infinity)
isNaN('foo')     // true
isNaN('10px')    // true

Tabii ki, eğer gerekiyorsa bu inkar edebilirsiniz. Örneğin, IsNumeric örnek uygulamak verdi:

function isNumeric(num){
    return !isNaN(num)
}

Bir dize, bir sayı, bir sayı içeren dönüştürmek için:

dize çalışır sadecesadecesayısal karakterler içeriyor, başka NaN döndürür.

 num              // returns the numeric value of the string, or NaN if the 
                  // string isn't purely numeric characters

Örnekler:

 '12'             // 12
 '12.'            // 12
 '12..'           // Nan
 '.12'            // 0.12
 '..12'           // Nan
 'foo'            // NaN
 '12px'           // NaN

Bir dize gevşek bir sayıya dönüştürmek için

dönüştürme '12px' 12, örneğin için. için yararlı

parseInt(num)     // extracts a numeric value from the 
                  // start of the string, or NaN.

Örnekler:

parseInt('12', 10)    // 12
parseInt('aaa', 10)   // NaN
parseInt('12px', 10)  // 12
parseInt('foo2', 10)  // NaN      These last two may be different
parseInt('12a5', 10)  // 12       from what you expected to see. 

Yüzer

Aklınızda bulundurun, aksine num, parseInt (adından da anlaşılacağı gibi) dönüştürmek bir şamandıra içine bir tamsayı tarafından parçalamaktan her şeyi aşağıdaki ondalık noktası (kullanmak isterseniz parseInt()çünkübu davranış, muhtemelen 22 ** yerine) sen iyisi mi:

parseInt(12.345, 10)   // 12
parseInt('12.345', 10) // 12
 '12.345'          // 12.345

Boş dizeler

Boş dizeler biraz mantığa aykırı olabilir. num sıfır boş dizeleri dönüştürür, ve isNaN() aynı varsayar:

 ''                // 0
isNaN('')          // false

Ama parseInt() kabul etmez:

parseInt('', 10)       // NaN

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • SRI International

    SRI Internat

    30 NİSAN 2008
  • TechSmartt

    TechSmartt

    29 Aralık 2010
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006