2012-01-27 24 views

cevap

23

Sen (boşluk gibi) herhangi bir karaktere dayanan bir dize bölmek, sonra parseInt sayı tabanı olan ikinci bir parametre, alır parseInt

var str = "223 lorem"; 
var num = parseInt(str.split(' ')[0], 10); 

DEMO

Not ilk indeksi geçebilir . Bunu kapatırsanız ve 09 gibi baştaki bir sıfır ile bir sayıyı ayrıştırmaya çalışırsanız, temel 8'de olduğunuzu varsayar ve 09 geçerli bir taban-8 değeri olmadığından 0 değerini döndürür.

var str = "223 lorem"; 
var num = +str.split(' ')[0]; 

DEMO

+0

+1, tavsiye edeceğim tek şey 'parseInt' için ikinci param olarak' 10' geçiyor, sadece iyi uygulama IMO. – Chad

+0

@Chad - Daha iyi bilmeliydim - –

+1

@Bcee: Just FYI'den önce yanmışımdır, sorusu jQuery ile alakası olmadığı için yukarıda sunulan yöntem saf Javascript'ti. Projenizde/ödevinizde jQuery'yi kullandığınızı anlıyorum ama ne olursa olsun Javascript'i öğrenmenizi öneriyorum. jQuery, sorunuzda listelenen konulara değinmez. –

4

bu deneyin: tekli + operatörünü kullanarak


Veya, John işaret ettiği gibi, bir dizi için bir dize dönüştürmek için şık bir yoldur.

var str = "223 Lorem Ipsum Dolor"; 
str = $.trim(str).split(" "); 
var num = parseInt(str[0], 10); 
+0

+1, fakat orijinal cevabım gibi, parseInt :) –

2

Ben böyle bir şey kullanmak daha iyi olduğunu düşünüyorum: ... sen +

+1

'unuzda bir radix parametresine ihtiyacınız var ve bir radix parametresi :) –

0

bu deneyin \ d önce bazı fakirler wse isteyeceksiniz Belki

var str = "223 Lorem Ipsum Dolor"; 
var matches = str.match(/(\d+)/); 
result = parseInt(matches[0]); 

function getFirstNumber(str) { 
    var matched = str.match(/^\d+/); 
    if(matched) { 
    return +matched[0]; // Get matched number (as string) and type cast to Number. 
    } 

    console.error("first word is not a number: '" + str + "'."); 
    return -1; 
}; 

var str = "223 lorem"; 

getFirstNumber(str); 
İlgili konular