2012-10-12 130 views
0

我想使用jQuery/Javascript獲取字符串的初始數值。現在,我得到的字符串是:從字符串獲取初始數字

2 <a href="user/[email protected] ">view</a> 

我想借此字符串(存儲在一個變量,並從它通常只需要最初的號碼,我會只拿第一個數字,但我想讓這個靈活,所以這個數字可以是任何數字的長度(例如,「2」到「20,000,000」),所以我知道只是開頭的幾個數字不起作用。

是否有任何人有解決的辦法嗎?謝謝您的時間!

+0

能不能請你改一下你的問題,這是相當令人費解。 –

+0

「20,000,000」包括逗號? –

回答

1
var str = '2 <a href="user/[email protected] ">view</a>​​​​​​​​​​​​​'; 
var parts = str.split(' '); 
alert(parts[0]);​​​​ 
0

之一,如果你想抓住只是個數字是使用正則表達式^\d+的解決方案,或^[\d,]+個如果允許逗號:

var input = '2 <a href="user/[email protected] ">view</a>'; 
var number = input.match(/^\d+/g); 
1

使用parseFloat。它遇到非數字字符時會停止。

parseFloat(mystring); 
0

如果有可能在數逗號,也許對於小數一個點,總有一個空間之後,我會匹配使用這樣的正則表達式...

var str = '2,000.33 <a href="user/[email protected] ">view</a>' 
var bits = str.match(/^[\d,\.]+/) 

// alerts 2,000.33 
alert(bits[0]) 

// to convert to string... 
num = parseFloat(bits[0].replace(/,/g,'')) 

alert(num) 
// alerts: 2000.33 (treated as number, not as string representation of number) 
+0

'parseInt('2,000.33')'等於2 – Xophmeister

+0

我認爲現在已經修復 –

0

如果數量不是逗號分隔:如果號碼是用逗號分隔的

var s = '1234 <a href="user/[email protected] ">view</a>', 
    num = parseInt(s, 10); 

var s = '1,234 <a href="user/[email protected] ">view</a>', 
    num = parseInt(s.match(/^\d{1,3}(?:,\d{3})*/)[0].replace(/,/g, ''), 10); 
0
function getNum (str) { 
    var result = ''; 
    var nums = str.match(/^(\d+|\,)*/); 
    if(nums[0]) 
     result = parseFloat(nums[0].replace(/,/g,'')); 

    return result; 
} 

用法:

getNum ('2 <a href="user/[email protected] ">view</a>')
輸出繼電器:2

getNum ('20,000,000 <a href="user/[email protected] ">view</a>')
輸出:20000000