假设我有一个这样的列表:

<ul id="items">
   <li id="item_1_dish">Item 1</li>
   <li id="item_2_dish">Item 2</li>
   <li id="item_3_dish">Item 3</li>
</ul>

我只需要从ID中检索号码。到目前为止,我一直在使用以下内容:
function getNum(element, attrPrefix){
    //set prefix, get number
      var prefix = attrPrefix;
      var num = element.attr("id").substring((prefix.length));
      return num;
}

function updateDish(field) {
      var num = getNum($(field), "item_");
     //Rest of function ...
     console.log("Number = " + num);// 1_dish, 2_dish, 3_dish
}

此返回的1_dish,2_dish,3_dish等如何

我想用这个:
function getNum() {
    var num = /\d+(?=\D*$)/.exec($("element").attr('id'));
    return num;
}

function updateDish(field) {
      var num = getNum($(field), "item_");
     //Rest of function ...
     console.log("Number = " + num); //null
}

阅读这篇文章后将返回我需要的东西:Jquery: Getting the number from ID,不幸的是我得到的是“null”而不是所需的数字。

我的ID实际上看起来像“_bc_inventorybundle_menu_product_0_dish”,我只是出于示例目的将它们缩短了。

感谢所有的快速回复。我接受了公认的答案,因为它与我已经拥有的答案最接近。

最佳答案

删除前缀后,您可以解析字符串以仅获取数字:

var num = parseInt(element.attr("id").substring((prefix.length)));

JSFIDDLE:http://jsfiddle.net/ghorg12110/vacxgomh/1/

10-05 20:29
查看更多