2013-04-12 2 views
2

이모티콘 경로를 유니 코드로 바꾸는 데 문제가 있습니다. RegEx 기능을 사용하고 싶습니다.이모티콘의 경로를 유니 코드로 바꾸려면 javascript와 regEx를 사용하십시오.

teststring<img src=":/new/emoji/emoji/emoji-E057.png" />thanks<img src=":/new/emoji/emoji/emoji-E415.png" /> 

\ uE057와 \ uE415 2 개 유니 코드 문자를 참고

teststring\uE057thanks\uE415 

로 : 내 말은 내가 대체 할 것입니다. 누구든지이 문제를 해결할 수 있습니다.

좋습니다.

+0

'U + E057'또는 'U + E415'는 유효한 유니 코드 문자가 아닙니다. 이 값들을 설명해주십시오. – Tomalak

+0

@Tomalak 그들은 개인 사용 영역 문자입니다. 사용자 정의 글리프를 사용하는 글꼴은 무료입니다. – Esailija

답변

2
var str = 'teststring<img src=":/new/emoji/emoji/emoji-E057.png" />thanks<img src=":/new/emoji/emoji/emoji-E415.png" />', 
    div = document.createElement("div"), 
    imgs, 
    regex = /emoji-([a-f0-9]{4})\.png$/i; 

div.innerHTML = str; 

imgs = [].slice.call(div.getElementsByTagName("img")); 

for(var i = 0; i < imgs.length; ++i) { 
    var m = imgs[i].src.match(regex); 

    if(m) { 
     imgs[i].parentNode.replaceChild(
      document.createTextNode(
       String.fromCharCode(parseInt(m[1], 16)) 
      ), 
      imgs[i] 
     ); 
    } 
} 

var result = div.innerText || div.textContent || ""; 
//"teststringthanks" 
+0

OP는 "jQuery"조차도 말하지 않았습니다. ;-) – Tomalak

+0

@Tomalak 나는 그 답을 짧고 쓸만하게 작성하고 읽도록하기 위해 그것을 사용했다. 정상적인 DOM API를 사용하면 브라우저 간 항목에 대해 걱정해야합니까? 당신은 이길 수 없으며 한 페이지의 코드가 필요합니다. 의사 코드로 생각하십시오. – Esailija

+0

@Tomalak은 "단지"두 배로 밝혀졌습니다. P – Esailija

관련 문제