我有这个功能来验证邮政编码(英国):
/* 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');
}
});
});
执行console.log是这样我可以看到每个检查的邮政编码的价值,我可以看到它更新。但是,在更改输入后,我知道它应该是错误的仍然警告('hi')而不是无效。我甚至在我的验证功能中添加了一个console.log,并显示邮政编码何时无效,那么为什么警报信息不会改变每次点击?
我用它来验证我的正则表达式:http://www.regextester.com/它说当我输入各种邮政编码时我的模式还可以,所以我现在有点迷失了,有什么想法吗?
由于
答案 0 :(得分:0)
好的,所以我很快找到了解决方案 - 因为我的功能在失败之前没有返回值。需要在if语句之外添加return true;
。
希望这可以帮助任何有类似问题的人:)