txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';
var pattern = /\s\d+/;
var parsed_data = parseInt((txt.match(pattern)||['0'])[0]);
从一些例子中得到了这个正则表达式模式。我试图解析文本,即锚标记中的值10。但获得的价值是2。
编辑: 我正在使用数据表来填充表格。 问题是字符串,即txt是行元素,使用循环从表中提取,需要添加这些值,例如
var parsed_data += parseInt((txt.match(pattern)||['0'])[0]);
答案 0 :(得分:4)
使用正则表达式解析html内容是一个非常糟糕的主意,在这种情况下使用jQuery来修复它
var txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';
var parsed_data = parseInt($(txt).text(), 10);
console.log(parsed_data)
演示:Fiddle
答案 1 :(得分:0)
你可以有类似的东西:
var txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';
var pattern = /.*>\s*(\d+)/;
var matches = txt.match(pattern);
var parsed = matches ? +matches[1] : 0;
但是,这个正则表达式只需要标记内的最后一位数字(&gt;):如果你想要更精确的东西,你应该使用DOM解析HTML - 这是更昂贵的。这取决于你的数据是什么,如果你总是有这样的格式,你就不需要DOM。