JS中关于正则的巧妙操作

废话不多说了,直接给大家贴代码了,具体代码如下所示:

var msg="dsada[emoji:37]dsadas[emoji:3900]法拉芬河";
function fetch(msg) {
  var match, result = msg,
    reg = /\[emoji:\d+\]/g,
    emojiIndex,
    totalEmojiNum = 45;
  while (match = reg.exec(msg)) {
    console.log(match[0]);//[emoji:37],[emoji:3900]
    emojiIndex = match[0].slice(7, -1);
    console.log(emojiIndex);//37,3900
    if (emojiIndex > totalEmojiNum) {
      result = result.replace(match[0], '[X]');
    } else {
      result = result.replace(match[0], '<img src="images/eomji_' + emojiIndex + '.gif" />');
    };
  };
  return result;//"dsada<img src="images/eomji_37.gif" />dsadas[X]法拉芬河"
}
fetch(msg);

总结

相关推荐