2016-03-31 2 views
0

jQuery.ProfanityFilterを使用してページ内に誓いの言葉を検索しています。コードは以下の通りです:jQuery.ProfanityFilter count

$divs.profanityFilter({ 
      customSwears: ['drunk'], 
      externalSwears: 'swearWords.json', 
      filter: false, 
      profaneText: function (data) { 

       alert("swear!"); 
      } 
     }); 

私の質問が発見された単語を誓うの量をカウントするどのような方法があるでしょうでしょうか?私はコードを適合させる適切な方法を見つけることができないようです。

ご協力いただければ幸いです。

+0

だけカウンタの、と 'profraneText'関数内の変数を追加し、増分 –

+0

おそらく、その関数の 'data'パラメータを' console.log() 'したいと思っています。おそらくどこかで一致した冒涜の配列があると思います。 – DBS

+0

@DBS [それはそうです](https://github.com/ChaseFlorell/jQuery.ProfanityFilter/blob/master/jquery.profanityfilter.js#L194)、すべての一致を含むわけではなく、単語ごとに1つだけそれは配列上で '.unique'を使うからです。 – DontVoteMeDown

答えて

0

プラグインを少し修正することができます。 @DontVoteMeDownによって提示されたlinkに基づいて、プラグインファイルのprofaneText関数を手動で直接変更して、その実装で動作させることができます。

プラグインの独自のJQueryの実装で、プラグインファイルで

if (profane) { 
    options.profaneText(data.unique(), data.length); 
}; 

$divs.profanityFilter({ 
     customSwears: ['drunk'], 
     externalSwears: 'swearWords.json', 
     filter: false, 
     profaneText: function (data, size) { 
      console.log("Swear words in element: " + data); 
      console.log("Number of swear words: " + size); 
     } 
    }); 
+0

ありがとう!これは完全に働いた:) –

0

グローバルカウンタ変数を使用します。

var swears = 0; 

$divs.profanityFilter({ 
    customSwears: ['drunk'], 
    externalSwears: 'swearWords.json', 
    filter: false, 
    profaneText: function (data) { 
    swears++; 
    alert("swear!"); 
    } 
}); 
+0

私はそれがすべてのマッチでその機能を実行するとは思わないが、マッチするものがあれば一度実行されます。 – DBS