jQuery keyup()非法字符

FFi*_*ish 1 jquery key

我有一个字段,并希望在他键入时显示用户时防止一些非法字符.我如何在以下示例中执行此操作?

  $('input').bind("change keyup", function() {
   var val = $(this).attr("value");
   /*
   if (val --contains-- '"') {
    $(this).css("background", "red");
           val = val.replace('"', "");
              $(this).attr("value", val)
   }
   */
   $("p").html(val);
  });
Run Code Online (Sandbox Code Playgroud)

编辑:我应该把非法字符放在一个数组中

var vowels = new Array('"', "<", ">", "&");
Run Code Online (Sandbox Code Playgroud)

jig*_*fox 5

尝试使用正则表达式.

$('input').bind("change keyup", function() {
 var val = $(this).val();
 var regex = /["<>&]/g;
 if (val.match(regex)) {
   $(this).css("background", "red");
   val = val.replace(regex, "");
   $(this).val(val);
 }
 $("p").html(val);
});
Run Code Online (Sandbox Code Playgroud)

而供参考:您可以替换.attr("value",val)使用.val(val),并.attr("value").val()

更新:

如果要排除更多字符,可以将它们放入正则表达式中.如果要排除用于控制正则表达式的字符,则需要使用\字符来转义它们以控制正则表达式:[]()/\+{}?*+.^$