2016-03-31 9 views
0

Ich benutze jQuery.ProfanityFilter, um Schimpfwörter in einer Seite zu finden. Der Code ist unten:jQuery.ProfanityFilter zählen

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

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

Meine Frage ist, wäre es eine Möglichkeit sein, das Zählen der Menge Schimpfwörter, die gefunden werden? Ich finde keinen geeigneten Weg, den Code anzupassen.

Jede Hilfe würde sehr geschätzt werden.

+0

nur eine Variable für einen Zähler hinzufügen, und innerhalb der 'profraneText' Funktion, erhöhen –

+0

Sie wollen wahrscheinlich 'console.log()' aus dem 'data' Parameter dieser Funktion, ich erwarte, dass es wahrscheinlich ein Array der passenden Obszönitäten irgendwo dort ist. – DBS

+0

@DBS [es scheint so] (https://github.com/ChaseForell/jQuery.ProfanityFilter/blob/master/jquery.profanityfilter.js#L194), aber es enthält nicht alle Übereinstimmungen, nur eine für jedes Wort , da es '.unique' für das Array verwendet. – DontVoteMeDown

Antwort

0

Sie können Ihr Plugin möglicherweise leicht modifizieren. Basierend auf der link von @DontVoteMeDown, können Sie möglicherweise die profaneText Funktion in der Plugin-Datei direkt ändern, um mit Ihrer Implementierung davon zu arbeiten.

Im Plugin Datei

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

Dann in Ihrer eigenen JQuery Implementierung der Plug-in:

$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

Vielen Dank! Das hat perfekt funktioniert :) –

0

Verwenden Sie eine globale Zählervariable.

var swears = 0; 

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

Ich glaube nicht, dass es diese Funktion bei jedem Spiel ausführt, sondern es wird nur einmal ausgeführt, wenn es Übereinstimmungen gibt. – DBS