网站搜索

javascript - 如何检测空格被退格或删除


我需要找到一种方法来检测空格是否被删除或退格,如果是这种情况,则运行一个函数。我正在使用 JavaScript/jQuery 来处理这个问题。

我知道我可以通过使用以下方法获取删除或退格键的按下:

$(this).keyup(function(event) {
        event.keyCode

然而,我不知道如何判断删除或退格命令是否删除了一个空格?

非常感谢任何建议。

答案#1

请看这里:http://jsfiddle.net/Txseh/

(function(){
    var currentWhitespaceCount;

    $("input").keyup(function(e){
        var newCount = ($(this).val().match(/\s/g) || []).length;

        if (newCount < currentWhitespaceCount)
            alert("You removed one or more spaces, fool.");

        currentWhitespaceCount = newCount;
    });
})();

它会跟踪输入中当前的空白字符数量,如果数量减少,它会发出警报(或执行你想要的操作)。

答案#2

事先缓存值(在按键时设置一个值),然后与按键后的值进行比较。这是唯一能够确定一个或多个空格已被删除的方法。对按键的任何检查都依赖于你能够推测出哪些可能的按键可以实现空格的删除,而且很可能会留下漏洞。

例如,选择一个单词的最后一个字母以及其后的空格,如果我们按下最后一个字母,它会删除空格。但按下的键不是退格键或删除键。