0

私は単純なスマイリーパーサーコードを持っています:

for (var key in smiles) {
  text = text.replace(key  , smiles[key]);
}
return text;

問題は、これは最初のものだけを置き換えるので、グローバル置換に切り替えました

for (var key in smiles) {
  var r =  '/'+key+'/g';
  console.log(r);
  text = text.replace(r  , smiles[key]);
}

コンソールで私は持っています:

/:)/g
/;)/g
/:(/g

これは問題ないようですが、これらのコードのいずれも置き換えられません。何が問題なの:) ;) :( ですか?

4

2 に答える 2

0

出現がなくなるまで、テキストをループしてスマイリーを置き換え続けてください:-

for (var key in smiles) {
    while (text.indexOf(key) > -1) {
        text = text.replace(key, smiles[key]);
    }
}
return text;
于 2013-11-15T05:38:22.053 に答える