使用jquery从li中的字符串中提取数字

时间:2011-04-13 18:29:36

标签: jquery regex string extraction

如何仅在span元素之后提取数字部分?

<ul class="info">
 <li class="name"><span class="textLabel">Name: </span>further (22)</li>
 <li>more stuff</li>
 <li>more stuff</li>
</ul>

我可以使用<li>获取.contents()的全文,但由于我不需要span值,我只需使用.contents()[1]然后获取further (22)。它在这里我遇到了问题 - 在使用.match(/\((\d+)\)/ TypeError: Object #<Text> has no method 'match'时,我一直遇到错误。

6 个答案:

答案 0 :(得分:1)

这是一个jsfiddle,它正是这样做的:

$(document).ready(function(){
    alert(parseInt($('li.name').text().replace(/[^0-9\.]/g, '')));
});

答案 1 :(得分:0)

尝试:

my_str = mystr.slice(-3,-2);

仅适用于固定长度。或者:

var my_array=my_input.split("(");
var my_out = my_array[1].slice(1,-1); //Trim final character

答案 2 :(得分:0)

尝试:

$('li').text().match(...)

错误来自于您尝试针对DOM节点而不是字符串执行正则表达式。

答案 3 :(得分:0)

/*stuff you do to get your element*/.text().match(/\((\d+)\)/);

Contents返回元素,文本节点和注释节点。由于您只需要文本内容,因此应使用text()

答案 4 :(得分:0)

<强> Live Demo

alert($('.name').text().match(/\((\d+)\)/)[1]); // 22

答案 5 :(得分:0)

var num = $('li.name').text().split('(')[1].split(')')[0];