Skip to content

Commit

Permalink
Create RegExp obj when using.
Browse files Browse the repository at this point in the history
  • Loading branch information
fengmk2 committed Jun 24, 2012
1 parent f453adf commit 29ca001
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 12 deletions.
26 changes: 20 additions & 6 deletions emoji.js
Original file line number Diff line number Diff line change
Expand Up @@ -751,7 +751,7 @@ var EMOJI_MAP = {
"👐": ["U+1F450", "open hands sign", "1f450", ["", "U+E695"], ["", "U+EAD6"], ["", "U+E422"], ["󾮡", "U+FEBA1"]]
};

var EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
var EMOJI_RE = null;

/**
* Convert unified code to HTML.
Expand All @@ -760,6 +760,9 @@ var EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
* @return {String} html with emoji classname.
*/
function unifiedToHTML(text) {
if (!EMOJI_RE) {
EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
}
return text.replace(EMOJI_RE, function (_, m) {
var em = EMOJI_MAP[m];
return '<span class="emoji emoji' + em[2] + '" title="' + em[1] + '"></span>';
Expand All @@ -783,57 +786,68 @@ for (var k in EMOJI_MAP) {
}
}

var EMOJI_DOCOMO_RE = new RegExp('(' + Object.keys(EMOJI_DOCOMO_MAP).join('|') + ')', 'g');
var EMOJI_KDDI_RE = new RegExp('(' + Object.keys(EMOJI_KDDI_MAP).join('|') + ')', 'g');
var EMOJI_SOFTBANK_RE = new RegExp('(' + Object.keys(EMOJI_SOFTBANK_MAP).join('|') + ')', 'g');
var EMOJI_GOOGLE_RE = new RegExp('(' + Object.keys(EMOJI_GOOGLE_MAP).join('|') + ')', 'g');

var EMOJI_DOCOMO_RE = null;
/**
* Convert DoCoMo code to Unified code.
*
* @param {String} text
* @return {String}
*/
function docomoToUnified(text) {
if (!EMOJI_DOCOMO_RE) {
EMOJI_DOCOMO_RE = new RegExp('(' + Object.keys(EMOJI_DOCOMO_MAP).join('|') + ')', 'g');
}
return text.replace(EMOJI_DOCOMO_RE, function (_, m) {
return EMOJI_DOCOMO_MAP[m];
});
}
jEmoji.docomoToUnified = docomoToUnified;

var EMOJI_KDDI_RE = null;
/**
* Convert KDDI code to Unified code.
*
* @param {String} text
* @return {String}
*/
function kddiToUnified(text) {
if (!EMOJI_KDDI_RE) {
EMOJI_KDDI_RE = new RegExp('(' + Object.keys(EMOJI_KDDI_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_KDDI_RE, function (_, m) {
return EMOJI_KDDI_MAP[m];
});
}
jEmoji.kddiToUnified = kddiToUnified;

var EMOJI_SOFTBANK_RE = null;
/**
* Convert SoftBank code to Unified code.
*
* @param {String} text
* @return {String}
*/
function softbankToUnified(text) {
if (!EMOJI_SOFTBANK_RE) {
EMOJI_SOFTBANK_RE = new RegExp('(' + Object.keys(EMOJI_SOFTBANK_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_SOFTBANK_RE, function (_, m) {
return EMOJI_SOFTBANK_MAP[m];
});
}
jEmoji.softbankToUnified = softbankToUnified;

var EMOJI_GOOGLE_RE = null;
/**
* Convert Google code to Unified code.
*
* @param {String} text
* @return {String}
*/
function googleToUnified(text) {
if (!EMOJI_GOOGLE_RE) {
EMOJI_GOOGLE_RE = new RegExp('(' + Object.keys(EMOJI_GOOGLE_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_GOOGLE_RE, function (_, m) {
return EMOJI_GOOGLE_MAP[m];
});
Expand Down
26 changes: 20 additions & 6 deletions tpl/emoji_footer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
var EMOJI_RE = null;

/**
* Convert unified code to HTML.
Expand All @@ -7,6 +7,9 @@ var EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
* @return {String} html with emoji classname.
*/
function unifiedToHTML(text) {
if (!EMOJI_RE) {
EMOJI_RE = new RegExp('(' + Object.keys(EMOJI_MAP).join('|') + ')', 'g');
}
return text.replace(EMOJI_RE, function (_, m) {
var em = EMOJI_MAP[m];
return '<span class="emoji emoji' + em[2] + '" title="' + em[1] + '"></span>';
Expand All @@ -30,57 +33,68 @@ for (var k in EMOJI_MAP) {
}
}

var EMOJI_DOCOMO_RE = new RegExp('(' + Object.keys(EMOJI_DOCOMO_MAP).join('|') + ')', 'g');
var EMOJI_KDDI_RE = new RegExp('(' + Object.keys(EMOJI_KDDI_MAP).join('|') + ')', 'g');
var EMOJI_SOFTBANK_RE = new RegExp('(' + Object.keys(EMOJI_SOFTBANK_MAP).join('|') + ')', 'g');
var EMOJI_GOOGLE_RE = new RegExp('(' + Object.keys(EMOJI_GOOGLE_MAP).join('|') + ')', 'g');

var EMOJI_DOCOMO_RE = null;
/**
* Convert DoCoMo code to Unified code.
*
* @param {String} text
* @return {String}
*/
function docomoToUnified(text) {
if (!EMOJI_DOCOMO_RE) {
EMOJI_DOCOMO_RE = new RegExp('(' + Object.keys(EMOJI_DOCOMO_MAP).join('|') + ')', 'g');
}
return text.replace(EMOJI_DOCOMO_RE, function (_, m) {
return EMOJI_DOCOMO_MAP[m];
});
}
jEmoji.docomoToUnified = docomoToUnified;

var EMOJI_KDDI_RE = null;
/**
* Convert KDDI code to Unified code.
*
* @param {String} text
* @return {String}
*/
function kddiToUnified(text) {
if (!EMOJI_KDDI_RE) {
EMOJI_KDDI_RE = new RegExp('(' + Object.keys(EMOJI_KDDI_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_KDDI_RE, function (_, m) {
return EMOJI_KDDI_MAP[m];
});
}
jEmoji.kddiToUnified = kddiToUnified;

var EMOJI_SOFTBANK_RE = null;
/**
* Convert SoftBank code to Unified code.
*
* @param {String} text
* @return {String}
*/
function softbankToUnified(text) {
if (!EMOJI_SOFTBANK_RE) {
EMOJI_SOFTBANK_RE = new RegExp('(' + Object.keys(EMOJI_SOFTBANK_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_SOFTBANK_RE, function (_, m) {
return EMOJI_SOFTBANK_MAP[m];
});
}
jEmoji.softbankToUnified = softbankToUnified;

var EMOJI_GOOGLE_RE = null;
/**
* Convert Google code to Unified code.
*
* @param {String} text
* @return {String}
*/
function googleToUnified(text) {
if (!EMOJI_GOOGLE_RE) {
EMOJI_GOOGLE_RE = new RegExp('(' + Object.keys(EMOJI_GOOGLE_MAP).join('|') + ')', 'g')
}
return text.replace(EMOJI_GOOGLE_RE, function (_, m) {
return EMOJI_GOOGLE_MAP[m];
});
Expand Down

0 comments on commit 29ca001

Please sign in to comment.