Javascript 防止向html文本字段输入特殊字符

Javascript 防止向html文本字段输入特殊字符,javascript,html,validation,Javascript,Html,Validation,我有一个输入文本字段,需要限制输入的字符。作为一种针对错误输入的防御方式,我试图不让用户输入错误的内容。输入可以是[a-zA-Z-。uuz]个字符,并且限制为32个字符 <input id="aliasEntry" type="text" maxlength="32"> 如您所见,我已经计算出了32个字符的限制,在达到限制后,用户将无法再键入任何内容。但是我在防止输入错误字符方面遇到了问题 我已尝试使用jquery的.keypress()和.keydown()事件捕捉器执行类似

我有一个输入文本字段,需要限制输入的字符。作为一种针对错误输入的防御方式,我试图不让用户输入错误的内容。输入可以是[a-zA-Z-。uuz]个字符,并且限制为32个字符

<input id="aliasEntry" type="text" maxlength="32">

如您所见,我已经计算出了32个字符的限制,在达到限制后,用户将无法再键入任何内容。但是我在防止输入错误字符方面遇到了问题

我已尝试使用jquery的.keypress()和.keydown()事件捕捉器执行类似于以下内容的操作:

$("#aliasEntry").keypress(function(e)
{
    var code = e.which || e.keyCode;
    // 65 - 90 for A-Z and 97 - 122 for a-z 95 for _ 45 for - 46 for .
    if (!((code >= 65 && code <= 90) || (code >= 97 && code <= 122) || code == 95 || code == 46 || code == 45))
    {
        var text = $("#aliasEntry").val();
        text = text.substring(0,text.length);
        $("#aliasEntry").val(text);
    }
});
$(“#别名条目”)。按键(功能(e)
{
var代码=e.which | | e.keyCode;
//A-Z为65-90,A-Z为97-122,A-Z为95,A-Z为45,A-Z为46。

如果(!((code>=65&&code=97&&code您正在使用jQuery,那么请参见以下内容:。
如果字符恰好无效,只需调用
e.preventDefault()
,这将阻止默认浏览器操作的发生,在这种情况下,默认浏览器操作将是插入字符。

像这样使用输入

<input maxlength="32" onKeyUp="chText()" onKeyDown="chText()" id="aliasEntry"/>

它不允许任何字符进入,除了
a-z
a-z

并在
keypress
期间进行操作;在Opera中,您无法阻止
keydown
期间的默认操作。是的,效果很好。我当时正朝那个方向看,想知道事件是否可以简单地停止,但我使用了错误的方法ods。谢谢!记住还要做服务器端验证。使用jQuery时,客户端验证很容易被愚弄(在本例中关闭浏览器上的JavaScript),您不必再次进行规范化。请记住,最好有一些UI解释用户键盘突然停止工作的原因。
function chText()
{
    var str=document.getElementById("aliasEntry");
    var regex=/[^a-z]/gi;
    str.value=str.value.replace(regex ,"");
}