您在另一个问题中提到了这一点:jquery get number from id
您应该养成在属性名称中使用分隔符的习惯(即button-1,button_1)。许多优点之一是它可以更容易地从字段中提取数字或其他信息(即,通过将字符串拆分为' - ')。
如果在属性名称中使用分隔符,如何提取数字?
谢谢!
答案 0 :(得分:4)
.attr('id')
可用于检索ID属性。.split
函数将字符串拆分为分隔符。[1]
获取号码。 代码:
var delimiter = '-';
var num = $("element").attr('id').split(delimiter)[1];
// Expected format: <anything 1>-<anything 2>
// Note that <anything 2> is not necessarily a number
以前的方法非常依赖于id格式。一个更坚实的方法是正则表达式:
var num = /\d+/.exec($("element").attr('id')); // Selects all consecutive digits
// Examples:
// button_1 = 1 button2 = 2 1st = 1 button4--5 = 4
要匹配最后的数字,请使用:
var num = /\d+(?=\D*$)/.exec($("element").attr('id'));
答案 1 :(得分:1)
将selector
和delimiter
替换为您的实际值。
var parts = $('#selector').attr('id').split('delimiter');
var my_number = parts[parts.length - 1];
alert(my_number);
答案 2 :(得分:1)
正如其他人已经建议你可以使用:
非常简单地分割出超级或下划线var number = str.split("-")[1]
这里另一个可行的选择是使用正则表达式模式提取数字。如果您从中提取数字的字符串没有分隔符,这将非常有用。我没有在我的特定编码风格中使用分隔符,所以我使用的是:
var number = str.match(/\d+/);