如何使用JavaScript从id属性中删除非数字字符

时间:2015-12-11 13:47:30

标签: javascript

我正在从列表标记中读取ID,并将其添加到pre标记,如下所示:

$('pre').each(function() {
  $(this).attr('id', $(this).closest('li').attr('id'));
});

例如,list标签有这个id:

<li id="Comment_123">

对于pre标签,我想删除id中的前8个字符;所以 pre标签应该成为这个id:

<pre id="123">  

如何使用我已有的代码实现这一目标?

3 个答案:

答案 0 :(得分:3)

如果您知道所有ID具有相同的结构,则可以删除_(包括)之前的内容。

var id = $(this).closest('li').attr('id').split('_').pop();

答案 1 :(得分:2)

如果它设置在前8个字符,则使用substring

var id = $(this).closest('li').attr('id');
var shortened = id.substring(8, id.length);

$(this).attr('id', shortened);

答案 2 :(得分:2)

如果要删除除数字之外的所有内容,可以使用.replace(/\D/g, '')

$('pre').each(function () {
  this.id = $(this).closest('li').attr('id').replace(/\D/g, '');
});

换句话说,所有出现的任何非数字字符都替换为空字符串''