Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 如果模式不符合正则表达式,则阻止继续在textbox上写入_Javascript_Jquery_Regex - Fatal编程技术网

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())