使用jquery时,不允许空格作为首字符,并且只允许字母

643ylb08  于 2023-03-17  发布在  jQuery
关注(0)|答案(5)|浏览(121)

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

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

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

fdx2calv

fdx2calv1#

可以使用HTML5属性pattern吗?有关详细信息,请参阅MDN文章。
使用^[a-zA-Z][\sa-zA-Z]*的正则表达式似乎可以满足您的要求。
比如:

<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" />
iyfjxgzm

iyfjxgzm2#

你应该试试这个

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

tvmytwxo3#

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

$("#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();
       }          
   });

这段代码可以很好地满足我的确切需求

tzdcorbm

tzdcorbm4#

此解决方案最适合我:

$("#nama").keypress(function(e) {
   if (e.which === 32 && !this.value.length) {
       e.preventDefault();
   }
   var k;
    document.all ? k = e.keyCode : k = e.which;
    return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32);        
});

第一次按键时不允许白色,也不允许任何特殊字符和数字。

0md85ypi

0md85ypi5#

/* First character space not allowed in text field */
$ = jQuery;
$('#billing_house_no').keyup(function(e) {
  var strg = this.value;
  var firstChar = strg.charAt(0);
  if ((firstChar == " ")||(firstChar == "&nbsp;")||(strg == "")) {
    this.value = this.value.replace(/\s/g,'');  
  }
});

相关问题