使用jquery / javascript使用正则表达式解析文本

时间:2013-11-07 08:38:12

标签: javascript jquery regex

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]);

2 个答案:

答案 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。