2012-04-02 5 views
1

나는 이베이 (IBay) 상점에서 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