我有这个函数来验证邮政编码(英国):
/* 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/当我输入各种邮政编码时,它说我的模式没问题,所以我现在有点迷失,有什么想法吗?
谢谢
最佳答案
好的,所以我很快找到了解决方案 - 这是因为我的函数在失败之前不会返回值。需要在 if 语句之外添加 return true;
。
希望这对遇到类似问题的人有所帮助:)
关于javascript - jQuery 正则表达式检查字段有效,但警报消息没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589022/