2016-07-13 7 views
1

私は単語のリストに対してtextarea/inputを検証しようとしています。 私はこれが正常に動作しているjqueryの検証を使用して、悪い単語リストに対してテキストをテストするには?

var badwordlist = new Array("blue", "Blue", "BLUE", 
"ASS", "drugs", "aciphex", "nude"); 
     jQuery.validator.addMethod("badWord", function(value) { 
      return !new RegExp(badwordlist.join('|')).test(value); 
     }, "Please remove bad words."); 

を作成しました。もし私がgreenblueと入力すれば、それでも私にエラーが出るでしょう。私は緑色ではなく青色をチェックしたいと思うのですが。クラスや評価としてお尻と同じもの。

+0

は "青" "悪い言葉" ですか? – undefined

+0

そのプレースホルダです –

+0

私はちょうど異なる言葉をテストしています。私はここでその言葉を使いたくありません。青は単なる例です。 –

答えて

0

他の方法を試してみませんか?

var badwordlist = new Array("blue", "ass", "drugs", "aciphex", "nude"); 

alert((new RegExp("blue", "i")).test("[" + badwordlist.join("][") + "]")); 
alert((new RegExp("greenblue", "i")).test("[" + badwordlist.join("][") + "]")); 
alert((new RegExp("ass", "i")).test("[" + badwordlist.join("][") + "]")); 
alert((new RegExp("class", "i")).test("[" + badwordlist.join("][") + "]")); 
+0

IMTheNachoMan jquery validation apiを使用しています。カスタム検証メソッドを作成しました。私のメソッドでうまく動作するかどうかテストするために、あなたの提案したコードをどうすれば使えますか? –

+0

jQueryの検証APIがどのように機能するのかよく分かりません。しかし、あなたが提供している正規表現を使うだけでいいようです。 – IMTheNachoMan

+0

IMTheNachoMan、あなたの答えをありがとう。 RegExpはパターンを探します。私はRegExpを削除し、私は.test(my_textarea.value)を使用しました。彼らは私が欲しかったやり方で働いた –

2

コードのこの作品は、私のために働いた、

var blacklist = /\b(word|word|word|word|word|word|word|word|word|word|word|word)\b/; /* many more banned words... */ 

jQuery.validator.addMethod("badwordcheck", function(value) { 
    return !blacklist.test(value.toLowerCase()); 
}, "Please remove inappropriate language before submitting."); 
関連する問題