我有一个字段,希望在用户键入时显示一些非法字符。 在下面的示例中我该如何做到这一点?
$('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);
});
编辑:我应该将非法字符放入数组中
var vowels = new Array('"', "<", ">", "&");
最佳答案
尝试使用正则表达式。
$('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);
});
仅供引用:您可以将 .attr("value",val)
替换为 .val(val)
和 .attr("value")
与 .val()
更新:
如果你想排除更多字符,你可以将它们放入正则表达式中。如果要排除用于控制正则表达式的字符,则需要使用 \
字符对其进行转义以控制正则表达式:[]()/\+{}?*+ .^$
关于jQuery keyup() 非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866108/