2012-04-02 6 views
1

私はeBayショップからのRSSフィードから読んだ製品のリストを表示しています。だから私は、ユーザーのためのフロントエンドでこれを修正について設定したエンコードされた£記号を交換してください

:あなたが見ることができるように

http://www.ebay.co.uk/sch/custommodsuk/_i.html?rt=nc&_rss=1&_rssstore=1

、彼らは「£ 45.00だけのための今すぐ購入」に関する第2回ポンド記号をエンコードしています私は各製品のHTMLをグローバルに置き換えることに本当に苦労しています。

ebayItemsContainer.find('.listItem').each(function() { 
       var itemHTML = $(this).html(); 
       var newHTML = itemHTML.replace(£/gi, '£'); 
       $(this).html(newHTML) 
      }); 

置換にセミコロンがなくても、エンコードされた文字は実際の文字に置き換えられません。

もエラー...

var newHTML = itemHTML.replace(\&\#163\;/gi, '£'); 

は誰も助けることができる文字のエスケープ、私はそれが根本的な問題だと確信していますか?

+0

正規表現の先頭にある "/"文字は本当に捨てていますか? – Pointy

+0

例のためにそれを忘れていませんでした...しばらく遊んでいました。本当の誤りではありませんでした。 –

答えて

3

正規表現には最初に/がありませんが、値は実際には£と二重にエンコードされています(ソースを表示している場合はこれを見ることができます)。

itemHTML.replace(/£/gi, '£'); 
+0

ありがとうございました、これは、私が前にしていた/私は周りをばかげている間、例のためにそれを忘れてしまった。ダブルエンコーディング、良い点でした。どうもありがとう。 –

0

あなたの正規表現は初め不足している:私はちょうどそれの代わりに正規表現の文字列になるだろうしかし

var newHTML = itemHTML.replace(/£/gi, '£');

は、私には簡単に思える:

var newHTML = itemHTML.replace('£', '£');

に留意されたいです。 XMLファイルでアンパサンドがエンコードされています。

+0

文字列を最初のargとして渡すのは、RegExp(パターン修飾子付き)ではなく、最初の出現箇所だけです。グローバル置換は、この質問の要件として引用されていますが、実際に必要かどうかは例から明らかではありません。 – MrWhite

0

引用符で囲んでみましたか?

var newHTML = itemHTML.replace('£', '£');

...ので、それは単なるテキストの文字列を置き換えるには本当にないのですか?

+1

文字列を最初のargとして渡すのは、RegExp(パターン修飾子付き)ではなく、最初の出現箇所だけです。グローバル置換は、この質問の要件として引用されていますが、実際に必要かどうかは例から明らかではありません。 – MrWhite

+0

ああ、そうだ。説明ありがとう。 – redlena

関連する問題