2011-09-12 144 views
1
<font color="green">+4,13</font>% 

我知道我不應該使用正則表達式爲,但是這就是我唯一的HTML是這樣的一個情況下...JavaScript的正則表達式從HTML標籤中獲取價值

哪能從上面的字符串得到「4,13」?

編輯

語境:

我通過jQuery的tablesorter排序表。列包含該html格式的數據,我無法更改它。我正在寫的自定義分析器有格式化功能,目前我用它來管理貨幣,百分比等...

現在,我想用一個正則表達式來檢查一下,如果找到的字符串是一個字符串。

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

請您通過「分拆」的意思或「獲取」的價值更加清楚了嗎? –

+2

+1免責聲明不知道使用正則表達式:P – Matt

+0

需要更多上下文。這個字符串從哪裏來? Javascript是否在瀏覽器中運行?它是如何加載字符串的,它還對字符串做了什麼?等。 – Cheeso

回答

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/

+0

我可以有「+4,13」或「0.00」或再次「-7,698」。我如何修改它? –

+0

如果您回覆我的評論,我可以接受您的回答;) –

+1

我剛剛更新了答案,我更改了RegEx,因此它將接受句號以及逗號。 – ipr101

0

編輯

如果你只是想匹配的數字

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

看看它是一個可選的+或here on Regexr

比賽 - 那麼至少有一個數字,那麼可選分數與一個。或a,作爲分數分隔符。

/編輯

嘗試是這樣的

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

那麼你會發現捕獲組的值 「+4,13」 1

看到它here on Regexr

如果您想排除+而不是在捕獲組之前添加(可能是可選)

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