2011-10-23 2 views
1

htmlテキストとJavaScriptコードをブロックするために、フォームを介してサブミットされるテキストをフィルタリングするのに適した正規表現は何ですか?JQuery:Ajaxサブミットのテキストをフィルタする

は、ここで私が使用しています何:

(function($){ 
$.fn.extend({ 
filter_input: function(options){ 
    var defaults = { 
     regex:".*", 
     live:false 
    } 
    var options = $.extend(defaults, options); 
    var regex = new RegExp(options.regex); 
    function filter_input_function(event){ 
     var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0; 
     // 8 = backspace, 9 = tab, 13 = enter, 35 = end, 36 = home, 37 = left, 39 = right, 46 = delete 
     if (key==8 || key==9 || key==13 || key==35 || key==36|| key==37 || key==39 || key==46){ 
      if ($.browser.mozilla){ 
       if (event.charCode==0 && event.keyCode==key){ return true; } 
      } 
     } 
     var string = String.fromCharCode(key); 
     if (regex.test(string)){ return true; } 
     return false; 
    } if (options.live){ 
     $(this).live('keypress', filter_input_function); 
    } else { 
     return this.each(function(){ 
      var input = $(this); 
      input.unbind('keypress').keypress(filter_input_function); 
     }); 
    } 
} 
}); 
    //$('textarea').filter_input({regex:'[a-zA-Z0-9_()\+\-$&%@.,!;?]', live:true}); 
    $('textarea').filter_input({regex:'[a-zA-Z0-9]',live:true}); 

})(jQuery); 

感謝。

答えて

0

Javascriptは決して100%安全な解決策ではないので、それに頼らないでください。データを確実にするには、サーバー側のフィルターが必要です。

とにかく、JavaScriptでデータをフィルタリングし、htmlタグを拒否したい場合、 '<'と '>'以外のすべての文字を受け入れることができます。

+0

確かに、この最初のフィルタを作りたいと思います。 – Roger

+0

@Roger私は自分の答えを更新します。 –

+0

ケーキ: 'regex: '[^ <>]''、ありがとう。 – Roger

関連する問題