如何使用jQuery替换字符串中冒号包装的所有字符串?

时间:2015-08-25 13:24:56

标签: jquery regex

我想要一个正则表达式来加速使用jQuery在我的应用程序中替换表情符号的搜索。

示例:以下是输入文字

嗨:笑:我今天感觉很强壮:肌肉:

问题

如何搜索:smile:和:muscle:自动使用正则表达式并在字符串中找到它们时替换它们?

我也希望得到比赛。

content.replace(/\[([^\]]+)\]/g, '<img .. $1 >');

注意:基本上,我没有尝试任何解决方案,因为我没有通过搜索谷歌找到任何解决方案。我发现很多[bbcodes],但没有结肠冒号:字符串:对不起

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我做了这个样本:也在jsfiddle

&#13;
&#13;
function wr(msg) {
    document.write(msg + "<br/>");
}

var txt = "Hi :smile: I feel strong today :muscle:";
    
wr("Original text:");
wr(txt + "<br/>");

var matches = [];
txt = txt.replace(/\s?:[^:]*?:/g, function (match) {
    matches.push(match);
    return "";
});

wr("Replaced text:");
wr(txt + "<br/>");

wr(matches.join("<br/>"));
&#13;
&#13;
&#13;

基于此正则表达式:

\s?:[^:]*?:

Regex live here.

希望它有所帮助。

答案 1 :(得分:0)

您可以这样做:

&#13;
&#13;
var re = /(:\w+:)/g;
var str = 'Hi :smile: I feel strong today :muscle:';
var match = str.match(re);

var newstr = str.replace(re, function(item) {
  var slice = item.slice(1, -1);
  //return slice;
  // just for a demo you can use this.
  if (slice == 'smile') {
    return '<img src="https://cdn3.iconfinder.com/data/icons/musthave/16/Positive.png">';
  } else {
    return '<img src="https://cdn2.iconfinder.com/data/icons/sport-items-2/512/gym_dumnbell-16.png">';
  }
});

document.querySelector('span').innerHTML = JSON.stringify(match);

document.querySelector('strong').innerHTML = newstr;
&#13;
<span></span>
<br/>
<strong></strong>
&#13;
&#13;
&#13;

实际上你可以用img替换每个单词。在此代码段中,我假设所有图标都在.png分机:

var newstr = str.replace(re, function(item) {
  var slice = item.slice(1, -1);
  return '<img src="your/path/to/smilyes/'+slice+'.png">';

});