Javascript 输入最大长度检查

Javascript 输入最大长度检查,javascript,html,css,Javascript,Html,Css,我对“checkNumbers()”有问题。我试图检查我的输入是否不超过10个数字“isAllowedSymbol()”工作得很好,但另一个不行。我有什么问题 function isAllowedSymbol(input) { var value = input.value; var rep = /[a-zA-Z]/; var rep2 = /[а-яА-Я]/; if (rep.te

我对
“checkNumbers()”
有问题。我试图检查我的输入是否不超过10个数字<代码>“isAllowedSymbol()”工作得很好,但另一个不行。我有什么问题

 function isAllowedSymbol(input)
        { 
            var value = input.value; 
            var rep = /[a-zA-Z]/;
            var rep2 = /[а-яА-Я]/;

        if (rep.test(value))
        { 
        value = value.replace(rep, ''); 
        input.value = value; 
                if (rep2.test(value))
                { 
                value = value.replace(rep2, ''); 
                input.value = value; 
                }
        } 
    }
    var element = document.querySelector("input[name=answer]");


    function checkNumbers(element) {
      if (element != null && element.value.length > 10) {
        element = element.replace(element, '');
      }
    }

<input type="text" maxlength="10" name="answer" onkeyup="isAllowedSymbol(this);checkNumbers(this);" placeholder="Enter data" > <br>
函数被允许符号(输入)
{ 
var值=输入值;
var rep=/[a-zA-Z]/;
变量rep2=/[а-аА-Я]/;
如果(重复测试(值))
{ 
值=值。替换(代表“”);
input.value=值;
if(代表2.测试(值))
{ 
值=值。替换(rep2,”);
input.value=值;
}
} 
}
var元素=document.querySelector(“输入[名称=答案]”);
函数校验号(元素){
if(element!=null&&element.value.length>10){
元素=元素。替换(元素“”);
}
}


您已使用
maxlength=10
进行输入,因此您无法向其添加任何新字符,因此
element.value.length>10
的情况永远不会发生

使用以下命令:

函数被允许符号(输入)
{ 
var值=输入值;
var rep=/[a-zA-Z]/;
变量rep2=/[а-аА-Я]/;
如果(重复测试(值))
{ 
值=值。替换(代表“”);
input.value=值;
if(代表2.测试(值))
{ 
值=值。替换(rep2,”);
input.value=值;
}
} 
}
var元素=document.querySelector(“输入[名称=答案]”);
函数校验号(元素){
if(element!=null&&element.value.length>10){
element.value=“”
}
}


首先你想做什么? 如果要在输入超过10时执行此操作,则输入框将被清除,然后首先在输入框的maxlength属性中进行编辑

<input type="text" maxlength="15" name="answer" onkeyup="isAllowedSymbol(this);checkNumbers(this); " placeholder="Enter data">


您到底想要什么?接下来,我需要在这里输入(placeholder=“Enter data”)-应该是(placeholder=“Enter data”),您正在尝试对具有字符串(element)的HTML元素使用替换函数(它是string对象的成员)。相反,您需要做的是使用replace方法:
element.value=element.value.replace(element.value“”);
如果字段中的文本长度超过10,它(字段)将被清除。顺便说一句,它的逻辑可能重复错误,如果我写入11个长度值,它将擦除所有。我想它应该擦除最后添加的一个。它应该是
element.value=element.substring(0,10)
@Sac,从问题上看,OP是要清除完整值还是最后输入的值并不清楚。我解释为完整值并编写了代码。如果他只想清除最后一个字符,那么您是正确的