不允许空格作为第一个字符,并且只允许使用jquery的字母

时间:2017-07-28 05:07:11

标签: jquery html

我使用jquery进行名称验证我已经尝试了下面给出的代码

$("#contactname").keypress(function(e) {
    if(e.which < 97 /* a */ || e.which > 122 && (e.which < 65 || e.which > 90)) {
       e.preventDefault();
    }         
});

上面的代码工作正常,只允许字母,但不允许数字,但不允许空格。所以我想要的是它应该只允许字母(小写和大写字母)然后它不应该允许数字和特殊字符和除了作为第一个角色之外还请接受空间请告诉我如何限制复制粘贴时。

3 个答案:

答案 0 :(得分:1)

你应该试试这个

 $("#contactname").keypress(function(event){
        var inputValue = event.charCode;
        if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)){
            event.preventDefault();
        }
 });

答案 1 :(得分:1)

您可以使用HTML5属性pattern吗?有关详细信息,请参阅其上的MDN article

使用^[a-zA-Z][\sa-zA-Z]*的正则表达式似乎可以满足您的要求。

类似于:

&#13;
&#13;
<div>Username:</div>
<input type="text" pattern="^[a-zA-Z][\sa-zA-Z]*" title="Can use upper and lower letters, and spaces but must not start with a space" />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我终于找到了解决这个问题的方法

$("#contactname").keypress(function(e) {
       if (e.which === 32 && !this.value.length) {
           e.preventDefault();
       }
       var inputValue = event.charCode;
       if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)){
           event.preventDefault();
       }          
   });

此代码可以正常使用