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是要清除完整值还是最后输入的值并不清楚。我解释为完整值并编写了代码。如果他只想清除最后一个字符,那么您是正确的