2011-07-20 59 views
1

匹配以下html字符串中的€特殊字符所需的正則表達式是什麼?使用正則表達式和jQuery去除html特殊字符

€20.000.000,00 

最後,我想要去除從數€符號。目前,我的代碼如下所示:

num = $("#number").html(); 
num.replace('€',''); 

$("number").html(num) 

但我當然需要用正確的正則表達式替換'€'

+0

'replace()'也適用於常規字符串,因此它應該可以工作。 – casraf

+0

我認爲是這樣,但不是,所以我想我會去正則表達式。 –

+0

基本上'/ \ &euro\; /'應該像RegEx一樣工作,儘管如此試用它還沒有測試 – casraf

回答

1

看來,當您使用jQuery處理文本時,HTML縮寫€已被其實際Unicode值 - 真實單個字符取代。一個引用unicode字符值的正則表達式應該爲你做竅門。

var x = $('#number').html(); 
x = x.replace(/\u20ac/, ''); 
$('#number').html(x); 
+0

這個伎倆。你知道替換何時/何時發生,爲什麼? –

+0

我想知道這是否會在其他瀏覽器,在閱讀jfriend00的答案(上面)後保持一致。 –

+1

我已經驗證此代碼在以下瀏覽器中可用:OS X Firefox 3.0,Windows Firefox 3.0-4.0,Windows IE 6.0-9.0,Windows Chrome 11.(經過[Adobe Browserlab](https://browserlab.adobe。 com/en-us/index.html))我們必須使用unicode字符而不是HTML代碼的原因是因爲我們正在處理由HTML源代碼創建但與之不同的活着的Document Object Model 。 –

0

.replace返回它的結果,它不會原地修改字符串。

+0

我知道。下一步是執行'$(「number」)。html(num)'來替換舊的字符串。我將編輯問題以包含此內容。 –

+0

我的意思是這樣做:'num = num.replace('€','');'。 – MRAB

+0

當然,這也可以。 –

1

這樣做對已經從瀏覽器頁面中提取HTML正則表達式是不可靠的,因爲你從瀏覽器的後退的HTML是在每個瀏覽器往往不同。例如,IE將刪除屬性周圍的引號並更改屬性的順序,因爲它將重構HTML,而不是返回原始HTML。 HTML實體也是如此(您可能會也可能不會得到實際的實體)。你通常可以找到一個不間斷的文本,但比這更復雜的任何東西都可能是麻煩的。

在食物鏈被消化和瀏覽器反芻之前嘗試食物鏈總是會更好。轉到瀏覽器尚未操作任何東西的實際頁面源代碼,或讓服務器直接在您的JavaScript變量中放置所需的值(如果可能)。