title: Jquery: filter input on keypress
body: <p>I have a text field, which will accept only the following characters:</p>
  
  <p><strong>Allowed characters: [a-z 0-9 + # - .]</strong></p>
  
  <p>This is the same filter <em>SO</em> does in the 'Tags' field, when you're asking a question.
  If the user types an invalid character, i want the current text field value to remain unchanged. I tried:</p>
  
  <pre><code>$('#post_tags').keypress(function(event){
      var char = String.fromCharCode(event.which)
      var txt = $(this).val()
  
      if (! txt.match(/[^A-Za-z0-9+#-\.]/)){
          $(this).val(txt.replace(char, ''));
      }
  })
  </code></pre>
  
  <p>Why it doesn't work? Thanks!</p>