2012-02-14 101 views
35

我的頁面上有一個按鈕,其類別爲comment_like,ID爲comment_like_123456,但最後的數字是可變的;可能是1到1000000.jQuery /從字符串獲取數字

單擊此按鈕時,我需要抓住最終號碼,以便我可以在具有相同後綴的其他元素上運行任務。

有沒有簡單的方法在jQuery中抓取這個數字?

$('.comment_like').click(function() { 
    var element_id = $(this).attr('id'); 

    // grab number from element ID 

    // do stuff with that number 

}); 

回答

76

你可以這樣說:

var suffix = 'comment_like_123456'.match(/\d+/); // 123456 

對於按鈕:

$('.comment_like').click(function(){ 
    var suffix = this.id.match(/\d+/); // 123456 
}); 
+1

what if var suffix ='(123)131-2312'; – Swaraj 2014-09-18 13:50:31

1

jQuery是不是靈丹妙藥。使用Javascript!

var temp = "comment_like_123456".split("_") 
alert(temp[2]) 
1

只需獲取id並通過正則表達式運行它。

$(mybutton).click(function() { 
    var num = parseInt(/^.*\_(\d+)$/.exec(this.id)[1]) 
}); 
+0

exec後的[1]是什麼? – user938363 2015-10-21 20:54:31

+0

@ user938363它獲得匹配字符串中的第一個捕獲組(即,第一組括號之間的所有內容,由'\ d +'匹配的內容 - 一個數字) – mgibsonbr 2015-10-21 22:39:38

3

這是普通老式的正則表達式任務,它無關的jQuery:

"comment_like_123456".match(/\d+/) 

=> ["123456"] 
10

在你的點擊處理程序:

var number = $(this).attr('id').split('_').pop(); 
+0

只要數字總是以下劃線結尾。只要html或要求不改變,緊密耦合:) – Sarfraz 2012-02-14 19:41:16

3

http://jsfiddle.net/hj2nJ/

var x = 'comment_like_6846511'; 
var y = ''; 

for (i = 0; i < x.length; i++) 
{ 
    if ("" + parseInt(x[i]) != "NaN") //if the character is a number 
     y = y + x[i]; 
} 

document.write(y);