我想要一个正则表达式来加速使用jQuery在我的应用程序中替换表情符号的搜索。
示例:以下是输入文字
嗨:笑:我今天感觉很强壮:肌肉:
问题
如何搜索:smile:和:muscle:自动使用正则表达式并在字符串中找到它们时替换它们?
我也希望得到比赛。
content.replace(/\[([^\]]+)\]/g, '<img .. $1 >');
注意:基本上,我没有尝试任何解决方案,因为我没有通过搜索谷歌找到任何解决方案。我发现很多[bbcodes],但没有结肠冒号:字符串:对不起
提前感谢您的帮助!
答案 0 :(得分:0)
我做了这个样本:也在jsfiddle
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;
基于此正则表达式:
\s?:[^:]*?:
希望它有所帮助。
答案 1 :(得分:0)
您可以这样做:
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;
实际上你可以用img替换每个单词。在此代码段中,我假设所有图标都在.png
分机:
var newstr = str.replace(re, function(item) {
var slice = item.slice(1, -1);
return '<img src="your/path/to/smilyes/'+slice+'.png">';
});