如何通过jQuery获取输入的最后两个字符并判断是否为/c?
解决方法:获取最后两个输入字符并判断是否为"/c"
我来帮你调整代码,让你能轻松获取最后两个输入字符并判断是不是"/c"。先看看现有代码的小问题:你用了unshift把新按键放到数组最前面,这会导致字符顺序和用户输入的相反,而且没有限制数组长度,所以没法直接拿到最后两个有效字符。
下面是修改后的完整代码,我会一步步解释:
var keys = []; $('#target').keypress(function(e) { // 将当前按键转换为字符,添加到数组末尾(保持输入顺序) keys.push(String.fromCharCode(e.which)); // 只保留最后两个字符,超过就移除最早输入的那个 if (keys.length > 2) { keys.shift(); } // 保留你原来的页面显示逻辑(可选) $('#last') .prepend($('<li/>').text(keys[keys.length - 1])) .children(':eq(2)').remove(); // 拼接最后两个字符,判断是否等于"/c" var lastTwoChars = keys.join(''); if (lastTwoChars === '/c') { // 这里写匹配后的逻辑,比如提示或执行操作 console.log("检测到用户输入了/c!"); // 清空数组避免重复触发(可选,根据你的需求调整) keys = []; } });
关键调整点:
- 修正字符顺序:用
push代替unshift,让数组的顺序和用户输入顺序一致,最新的字符在数组末尾。 - 限制数组长度:每次添加新字符后,判断数组长度是否超过2,超过就用
shift()移除最早的字符,确保数组始终只存最后两个输入。 - 直接判断组合字符串:用
join('')把数组里的字符拼成完整字符串,直接和"/c"对比,逻辑更清晰。
如果用户输入的是单个字符,lastTwoChars长度为1,不会触发匹配;当输入第二个字符时,就会自动拼接判断,完美符合你的需求~
内容的提问来源于stack exchange,提问作者Cesar Bielich
相关产品推荐
相关产品推荐

