首页 > 解决方案 > 仅适用于 alpha 和单个空格的函数

问题描述

我有一个功能可以让人们只输入字母 onkeypress

function isAlfa(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) {
        return false;
    }
    return true;
}

我有另一个功能可以防止他们输入双空格

function checkstuff(event){
if(event.target.value.substr(-1)=== ' ' && event.code === 'Space')

{
//alert('space clicked twice');
//remove space from the last.
event.target.value = event.target.value.substr(0,event.target.value.length-1);
}

debugger;

var evt = (event) ? event : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;

if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) {
console.log(charCode)
    return false;
}
console.log('valid '+charCode)
return true;
}

我一直在尝试将两者合二为一,但没有成功。我尝试同时运行它们onkeypress,但它只运行第一个。如何合并这两个功能?

标签: javascript

解决方案


在字母检查部分之后,您可以添加检查双空格的功能,如下所示。

function isAlfa(evt) {
  evt = (evt) ? evt : window.event;
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) {
    return false;
  }
  
  if(evt.target.value.substr(-1) === ' ' && evt.keyCode === 32) {
    return false;
  }
  
  return true;
}
<input type="text" onkeypress="return isAlfa(event)" />


推荐阅读