Javascript jQuery Regex对字段的检查有效,但警报消息不';不变
我使用此功能验证邮政编码(英国): 正如您所看到的,这只是一个简单的正则表达式,用于检查某些点上的字符类型数量 要触发它(或至少在我使用它的部分),我使用: 执行console.log是为了在每次检查时都能看到邮政编码的值,并能看到它的更新。但是,在更改输入时,我知道它应该是错误的,但仍然发出警报(“hi”),而不是无效。我甚至在我的验证函数中添加了一个console.log,它会显示邮政编码何时无效,那么为什么每次单击都不会更改警报消息呢 我用这个来验证我的正则表达式:当我输入不同的邮政编码时,它说我的模式是正确的,所以我现在有点迷茫,有什么想法吗Javascript jQuery Regex对字段的检查有效,但警报消息不';不变,javascript,jquery,regex,Javascript,Jquery,Regex,我使用此功能验证邮政编码(英国): 正如您所看到的,这只是一个简单的正则表达式,用于检查某些点上的字符类型数量 要触发它(或至少在我使用它的部分),我使用: 执行console.log是为了在每次检查时都能看到邮政编码的值,并能看到它的更新。但是,在更改输入时,我知道它应该是错误的,但仍然发出警报(“hi”),而不是无效。我甚至在我的验证函数中添加了一个console.log,它会显示邮政编码何时无效,那么为什么每次单击都不会更改警报消息呢 我用这个来验证我的正则表达式:当我输入不同的邮政编码时
谢谢好的,所以我很快找到了解决方案-这是因为我的函数在失败之前不会返回值。需要添加一个
返回true代码>在if语句之外
希望这能帮助任何有类似问题的人:)这也可以做这项工作,因为.test
返回一个布尔值:$.fn.validatePostCode=function(postcode){return/^[a-Za-z]{1,2}\d{1,2}\s*\d{1}[a-Za-z]{2}$/i.test postcode}代码>
/* validate Post Code */
$.fn.validatePostCode = function(postcode)
{
regex = /^[A-Za-z]{1,2}\d{1,2}\s*\d{1}[A-Za-z]{2}$/i;
if (!regex.test(postcode)) {
return false;
}
};
$(document).ready(function()
{
$('#nextBtn').on('click', function()
{
var postcode = $('#postcode').val();
console.log(postcode);
if (!$.fn.validatePostCode(postcode)) {
alert('hi');
} else {
alert('not valid');
}
});
});