Javascript 如果模式不符合正则表达式,则阻止继续在textbox上写入
我有一个Javascript 如果模式不符合正则表达式,则阻止继续在textbox上写入,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个文本框用于我的护照代码 我如何定义用户输入的代码是否与regex protect to continue write on textbox不同 并保留错误,直到用户输入正确的错误? 以下是我的片段: $(“.passno”)。每个(函数(索引,元素){ $(this).bind('keyup',函数(事件){ var regex=newregexp(“^[A-Z][0-9]{8}$”; var值=event.currentTarget.value; 如果(!正则表达式测试(值)){ $
文本框
用于我的护照代码
我如何定义用户输入的代码是否与regex protect to continue write on textbox不同
并保留错误,直到用户输入正确的错误?
以下是我的片段:
$(“.passno”)。每个(函数(索引,元素){
$(this).bind('keyup',函数(事件){
var regex=newregexp(“^[A-Z][0-9]{8}$”;
var值=event.currentTarget.value;
如果(!正则表达式测试(值)){
$(this).next(“.box infoes”).find(.error”).css(“display”,“block”)
}否则{
$(this).next(“.box infoes”).find(.error”).css(“display”,“none”)
}
});
});代码>
这是一个错误的护照密码!
$(“.passno”)。每个(函数(索引,元素){
$(this).bind('keypress',函数(事件){
var regex=newregexp(“^[A-Z][0-9]{8}$”;
var值=event.currentTarget.value;
如果(!正则表达式测试(值)){
$(this).next(“.box infoes”).find(.error”).css(“display”,“block”);
event.preventDefault();
}否则{
$(this).next(“.box infoes”).find(.error”).css(“display”,“none”)
}
});
});代码>
这是一个错误的护照密码!
您的正则表达式应该类似于RegExp(“[A-Z]{1}[0-9]{8}”)
但您的代码需要更多修改,例如使用SHIFT-CTRL等一些按钮
作为
字符,或者如果为空,则删除错误等
现在正则表达式说:[A-Z]{1}
只有一个单词+[0-9]{8}
八个数字
例如类型J12345678
$(“.passno”)。每个(函数(索引,元素){
$(this).bind('keyup',函数(事件){
var regex=newregexp(“[A-Z]{1}[0-9]{8}”);
var值=event.currentTarget.value;
$(this.val($(this.val().toUpperCase());
如果(!regex.test(value)| value.length>9){
$(this).next(“.box infoes”).find(.error”).css(“display”,“block”)
}否则{
$(this).next(“.box infoes”).find(.error”).css(“display”,“none”)
}
});
});代码>
这是一个错误的护照密码!
您的正则表达式可能有问题,请交叉检查正则表达式以大写字母开头。您的代码不允许以大写字母键入字母。请稍候,我正在检查您的原始代码。如果您键入大写字母,则会显示错误。您无法检查输入的每个字符的完整正则表达式。所以很明显,在正则表达式通过之前,它将显示错误。阻止写入并允许用户键入内容?不要挫败用户,在提交表单之前检查输入,或者保持脚本不变…信息(错误消息)就足够了…如果用户输入了错误的字符,请防止写入。在这种情况下,您需要逐个字符检查,而不是整条字符串(因此,您的正则表达式没有帮助,它只能在键入结束时检查整条字符串)。。。所以,如果第一个字符不是大写字母,请停止,等等。。。实际上,你必须只允许输入大写字母和数字。。。还有,想一想现场粘贴……谢谢。有没有办法从资本世界开始。我只想用capital world输入文本框并将其发送到服务器。很高兴能帮助您。当您使用A-Z
时,这意味着用户应该输入所有大写字,包括开始。我的意思是,即使用户按下的键是小字,我也要输入大写字?现在我知道了,是的,这是可能的。让我更新我的答案@您应该使用$(this.val($(this.val().toUpperCase())代码>