我有一个文本框,我想对其进行一些验证。目前我有这段代码:
function updateChanger() {
// Validate input
var likeMessage = validateInput($("#like").val());
alert(likeMessage);
}
function validateInput(input) {
input = input.replace(/[^a-zA-Z0-9:\(\/\)\s\.,!~]/g, "");
return input;
}
这样可以成功删除likeMessage变量中不需要的字符,但字符仍会输入到文本框中。我想阻止这种情况发生。
我知道它会与$("#like").val()
有关,但我唯一能想到的就是从文本框值中删除结束字符,这是否足够?
感谢您的帮助!
答案 0 :(得分:5)
您可以使用keyup
event执行此操作,如下所示:
$("#like").keyup(function() {
$(this).val($(this).val().replace(/[^a-zA-Z0-9:\(\/\)\s\.,!~]/g, ""));
});
每次按键时都会检查并删除无效字符,因此无效字符不会留在框中,会立即删除。