これが機能しない理由はわかりませんが、countGrin 関数をコメントアウトすると、完全に正常に機能します。
var DetectEmoticons = {
countHappy: function(data) {
var pattern = new RegExp("[:=]-?[)|\\]]|[(|\\[]-?[:=]", "g");
var count = (data.match(pattern) || []).length;
return count;
}
countGrin: function(data) {
var pattern = new RegExp("[:=]-?[D]", "g");
var count = (data.match(pattern) || []).length;
return count;
}
}
alert(DetectEmoticons.countHappy("=) :) :] :[ ]="));
alert(DetectEmoticons.countGrin(":D =D"));
これがjsfiddleです:http://jsfiddle.net/9BTAb/