Трябва да създам функционалност, която ще ми позволи да анализирам текст, търсейки съвпадение за низ от емотикони в различен формат. Може да бъде емотикон тип :)
или тип <dog>
(<dog>
). В момента моята функция може да намери и двата типа, но се нуждае от два различни регулярни израза за тази задача и бих искал да го направя само с една стъпка. Някакви идеи ?
Пример на живо в jsfiddle: http://jsfiddle.net/rmQSx/5/
и кода:
function replaceEmoticons(text) {
var emots1 = {
':)': 'smile.gif',
':(': 'sad.gif',
},
emots2 = {
'<dog>': 'dog.gif',
'<fly>': 'fly.gif'
},
regex1,regex2,p,re;
for(p in emots1){
regex1 = "["+p+"]{2}";
re = new RegExp(regex1, "g");
text = text.replace(re, function (match) {
return typeof emots1[match] != 'undefined' ?
'<img src="'+emots1[match]+'"/>' :
match;
});
}
for(p in emots2){
regex2 = "("+p+")(|$)";
re = new RegExp(regex2, "g");
text = text.replace(re, function(match) {
return typeof emots2[match] != 'undefined' ?
'<img src="'+emots2[match]+'"/>' :
match;
});
}
return text;
}
console.log(replaceEmoticons('this is <dog>b a<fly> simple test :) , ;) and more:):('));