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