diff --git a/app/assets/javascripts/discourse/models/topic.js.es6 b/app/assets/javascripts/discourse/models/topic.js.es6
index 60b40fe63cf..1dfd002d348 100644
--- a/app/assets/javascripts/discourse/models/topic.js.es6
+++ b/app/assets/javascripts/discourse/models/topic.js.es6
@@ -9,7 +9,7 @@ const Topic = RestModel.extend({
let title = this.get("fancy_title");
if (Discourse.SiteSettings.enable_emoji && title.indexOf(":") >= 0) {
- title = title.replace(/:\S+:?/g, function(m) {
+ title = title.replace(/:[^\s:]+:?/g, function(m) {
const emoji = Discourse.Emoji.translations[m] ? Discourse.Emoji.translations[m] : m.slice(1, m.length - 1),
url = Discourse.Emoji.urlFor(emoji);
return url ? "
" : m;
diff --git a/test/javascripts/models/topic-test.js.es6 b/test/javascripts/models/topic-test.js.es6
index 927572e3b05..c5a2e578fcf 100644
--- a/test/javascripts/models/topic-test.js.es6
+++ b/test/javascripts/models/topic-test.js.es6
@@ -73,6 +73,8 @@ test("recover", function() {
});
test('fancyTitle', function() {
- var topic = Topic.create({ fancy_title: ":smile: with all the emojis" });
- equal(topic.get('fancyTitle'), "
with all the emojis", "supports emojis");
+ var topic = Topic.create({ fancy_title: ":smile: with all :) the emojis :pear::peach:" });
+ equal(topic.get('fancyTitle'),
+ "
with all
the emojis 
",
+ "supports emojis");
});