2

絵文字パスをユニコードに置き換えるという問題に直面しています。RegEx 機能を使用したい。つまり、次のように置き換えたいということです。

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

teststring\uE057thanks\uE415

\uE057 と \uE415 は 2 つの Unicode 文字であることに注意してください。誰でもこの問題で私を助けることができます。

よろしくお願いします。

4

1 に答える 1

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"
于 2013-04-12T14:23:30.650 に答える