JavaScript RegEx用于从HTML标记中提取值

时间:2011-09-12 09:58:48

标签: javascript html regex tags

<font color="green">+4,13</font>% 

我知道我不应该使用正则表达式,但这只是一个案例,我唯一的html就是这样......

我如何从上面的字符串获取“4,13”?

修改

上下文:

我通过jQuery TableSorter对表进行排序。列包含html格式的数据,我无法更改它。我写的自定义解析器有一个格式函数,我目前用它来管理货币,百分比等......

现在,我想用正则表达式检查来到我的字符串是否为字符串。

format: function(s) {
    console.log(s);
    var stripped = s.replace("<font>","")
                     .replace("</font>", "");
    return jQuery.tablesorter.formatFloat(stripped);
}

2 个答案:

答案 0 :(得分:1)

这适用于您的具体示例 -

var tagtext = '<font color="green">+0.00</font>%';
var keepplusorminus = false;
var myregexp = keepplusorminus ? /[-\+,\.0-9]+/ : /[,\.0-9]+/;
var match = myregexp.exec(tagtext);
if (match != null) {
    result = match[0];
} else {
    result = "";
}
alert(result);

工作演示 - http://jsfiddle.net/ipr101/LHBp7/

答案 1 :(得分:0)

修改

如果您只想匹配数字

[+-]?\d+(?:[,.]\d+)?

here on Regexr

匹配可选的+或 - 然后至少一个数字,然后是带有的可选分数。或者a,作为分数分隔符。

/编辑

尝试这样的事情

<font color="green">([^<]+)

然后,您将在捕获组1中找到值“+4,13”。

here on Regexr

如果要在捕获组

之前排除+而不是添加它(可能是可选的)
<font color="green">\+?([^<]+)