将用户输入"拦截"到文本框中并将其删除

VIV*_*NWO 3 javascript jquery text input

我有一个文本框,我想做一些验证.目前我有这个代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

这成功地删除了likeMessage变量中不需要的字符,但字符仍然输入到文本框中.我想阻止这种情况发生.

我知道它会有一些关系,$("#like").val()但我唯一能想到的就是从文本框值中删除结束字符,这样就足够了吗?

谢谢你的帮助!

Nic*_*ver 5

您可以使用此keyup事件执行此操作,如下所示:

$("#like").keyup(function() {
  $(this).val($(this).val().replace(/[^a-zA-Z0-9:\(\/\)\s\.,!~]/g, ""));
});
Run Code Online (Sandbox Code Playgroud)

这会在每次按键时检查并删除无效字符,因此无效字符不会留在框中,会立即删除.