Javascript 在输入文本框中仅允许英文小写字母

Javascript 在输入文本框中仅允许英文小写字母,javascript,php,ajax,forms,Javascript,Php,Ajax,Forms,晚上好。 我已经为输入字段创建了一个函数,要求用户为其帐户选择url 与我创建的数据库进行通信的部件,工作非常完美。还有一块可以把字母放低 但我不知道如何使用特殊的字符和空格 我在互联网上找到了一些解决方案,但输入后调用第二个函数。我不想改变我的功能。我想以某种方式合并到现有函数中 我的html是 <input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" placeholder="Write

晚上好。 我已经为输入字段创建了一个函数,要求用户为其帐户选择url

与我创建的数据库进行通信的部件,工作非常完美。还有一块可以把字母放低

但我不知道如何使用特殊的字符和空格

我在互联网上找到了一些解决方案,但输入后调用第二个函数。我不想改变我的功能。我想以某种方式合并到现有函数中

我的html是

<input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" placeholder="Write your url. " required  onkeyup="urlcheck()"/>

我的JS是

function urlcheck(){  

var x = document.getElementById("urlcheck");
x.value = x.value.toLowerCase();

var urlcheck = $('#urlcheck').val();  
    if(urlcheck != '')  
           {  
    $.ajax({  
      url:"<?php echo base_url(); ?>portolio/check_url",  
      method:"POST",  
      data:{url:url},  
      success:function(data){ 
      data.trim();
      if(data == '1') {
                             $('#url_result').html('<label class="text-danger">Url is not free</label>'); 
    } else {   
$('#url_result').html('<label class="text-success">Url is free.</label>');

                             }
                         }
                });  
           }  
}; 
函数urlcheck(){
var x=document.getElementById(“urlcheck”);
x、 value=x.value.toLowerCase();
var urlcheck=$('#urlcheck').val();
如果(urlcheck!='')
{  
$.ajax({
url:“portolio/check_url”,
方法:“张贴”,
数据:{url:url},
成功:函数(数据){
data.trim();
如果(数据='1'){
$('#url_result').html('url不是免费的');
}否则{
$('#url_result').html('url是免费的');
}
}
});  
}  
}; 
我找到的解决方案,但我不知道这是如何合并的:

    <script type="text/javascript">
    function blockSpecialChar(e){
        var k;
        document.all ? k = e.keyCode : k = e.which;
        return ((k > 96 && k < 123) || k == 8 || (k >= 48 && k <= 57));
        }
    </script>
</head>
<body>
    <form id="frm" runat="server">
      <input type="text" name="folderName"  onkeypress="return blockSpecialChar(event)"/>
    </form>

功能块SpecialChar(e){
var-k;
document.all?k=e.keyCode:k=e.which;

return((k>96&&k<123)| | k==8 | | |(k>=48&&k 96&&k<123)| | k==8 | | |(k>=48&&k使用我找到的这个模式。它只接受URL

<input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" 
placeholder="Write your url. " required  onkeyup="urlcheck()" required=""  data-bv- 
regexp="true" data-bv-regexp-regexp="https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,}"
            data-bv-regexp-message="Invalid Url">

您不需要为此任务编写javascript。只需使用
模式
属性即可

请尝试我的可运行代码段。键入非字母数字字符,然后单击“提交”。提交将停止


提交

将HTMLInputElement
模式
属性与regex一起使用-不需要函数或服务器。我强烈建议您使用一个前导/暗示占位符值,以及一个使用模式属性的非常广泛的url验证器(正如Randy所说)。然后,只有在用户完全输入完url后才检查该url——使用onblur,或者使用onsubmit()更好。然后启动ajax功能并使用此功能:尝试容纳每个url将是一个非常难以设计的模式。采取合理的步骤,但不要仅依靠正则表达式来保护您。Hi@mickmackusa的可能重复我编辑了我的第一个问题,因为可能我解释得不太好(我的英语不是很好)。我只需要用户键入最后一部分,而不是整个url。因此,我只需要字母和数字,不需要空格和特殊字符。你告诉我关于onkeyup与onblur或OnSubmit的更改,这与资源或其他有关?我的意思是,我的网站很难在每个键中发送查询?是的,这是一个非常详细的模式。可能你试图压缩逻辑?还是你只是复制粘贴了一些你不太理解的东西?我不想检查整个url。只有最后一部分。这允许我使用ÄÖÜ!§$%&/()=@Gismo我无法重现你的问题。我只是尝试使用了一个,在我的答案和你的输入中使用了模式,效果如预期。
<input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" 
placeholder="Write your url. " required  onkeyup="urlcheck()" required=""  data-bv- 
regexp="true" data-bv-regexp-regexp="https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,}"
            data-bv-regexp-message="Invalid Url">