Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入时输入文本验证?_Javascript_Html_Regex - Fatal编程技术网

Javascript 输入时输入文本验证?

Javascript 输入时输入文本验证?,javascript,html,regex,Javascript,Html,Regex,在我的html页面中,我希望用户在input type=text中按特定顺序添加字符串 如果我在输入标记中使用模式,那么在提交表单时会弹出错误,我希望在键入时弹出错误 所需的模式是4个字母,然后是4个数字没有空格不允许使用特殊字符 我在后端使用的模式是^[A-Z]{4}[0-9]{4}$ 我怎样才能做到这一点 编辑 主持人: 我从来没有说过错误是因为打字错误。我在哪里提到的?结束语问题没有提供解决方案无论是谁,您都应该阅读该主题。 我没有接受答案,因为它们没有按预期工作。 正在研究解决方案 需要

在我的html页面中,我希望用户在
input type=text
中按特定顺序添加字符串

如果我在输入标记中使用模式,那么在提交表单时会弹出错误,我希望在键入时弹出错误

所需的模式是
4个字母,然后是4个数字没有空格不允许使用特殊字符

我在后端使用的模式是
^[A-Z]{4}[0-9]{4}$

我怎样才能做到这一点

编辑

主持人: 我从来没有说过错误是因为打字错误。我在哪里提到的?结束语问题没有提供解决方案无论是谁,您都应该阅读该主题。

我没有接受答案,因为它们没有按预期工作。 正在研究解决方案


需要再次打开此线程。谢谢

有被否决的风险:)但这仍然是我的解决方案。我试图用一个正则表达式来解决这个问题,但没有成功,所以我用了两个正则表达式来检查模式,如果无效,我将从字符串中删除最后一个元素

$(文档).ready(函数(){
$('#typehere').keyup(函数(el){
让valid=true;
设regex=/^\d{0,4}$/;
设regex1=/^\d{0,4}[a-zA-Z]{0,4}$/;
如果(此.value.length<5){
valid=regex.test(this.value)
}否则{
valid=regex1.test(this.value)
}
如果(!有效){
console.log(有效)
this.value=this.value.substr(0,this.value.length-1);
}
})
})

我尝试在输入更改上添加函数调用,因此当用户键入时,它将测试用户输入是否与模式匹配

  • 模式:
    ^[0-9]{4}[A-Z]{4}$
    匹配如下字符串
    1234ABCD
  • 为了改变模式,我们需要做3个改变
  • HTML
    输入字段中,我们需要更新模式
  • JS
    testText
    中,我们需要更新字符串
    • testText
      包含与模式完全匹配的示例字符串
  • (可选)根据要求,我们可以更新
    textElem.innerHTML
const textElem=document.querySelector(“.text\u error”);
函数检查文本(事件){
让testText=“1234ABCD”;//完全匹配模式的示例字符串
const{target}=事件;
如果(!target.checkValidity()){
常量{value}=目标;
testText=value+testText.slice(value.length);
const re=new RegExp(event.target.pattern);
如果(!重新测试(testText)){
target.value=value.substr(0,value.length-1);
如果(!target.checkValidity()){
textElem.innerHTML=“无效,例如1234ABCD”;
}否则{
textElem.innerHTML=“有效”;
}
}否则{
textElem.innerHTML=“”;
}
}否则{
textElem.innerHTML=“有效”;
}
}

正文:


您交换了图案中的字母和数字,请尝试
pattern=“\d{4}[A-Za-z]{4}”
如果图案不匹配,我想禁止打领带,我该怎么做?@ChandraShekharAazad您想禁止什么?按钮?不,让我试着解释一下:文本输入中的用户正在键入字符串(字符串的格式/模式在主要问题中提到),在uer输入4letter之后,现在用户需要输入4number,但如果用户输入字母,则输入文本不应允许该字母。所有这些都是我在打字时想要的。@ChandraShekharAazad那么你应该实现javascript,如果字母在第4位或更高的位置,就可以删除它