javascript - jQuery 正则表达式检查字段有效,但警报消息没有改变

标签 javascript jquery regex

我有这个函数来验证邮政编码(英国):

/* 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/

相关文章:

javascript - 从附加的选择菜单中删除选择选项

c# - 用于从智能手机上的 GPS 位置获取附近商店名称的 API

javascript - 为什么垂直滚动条会自动移动?

JavaScript;正则表达式并排只有 5 位数字的字符串

javascript - 旋转时闪烁的图像

javascript - 带有\x 转义序列的 JS 正则表达式在 Firefox 中不起作用

javascript - 使用 Angular 更新 jQuery 选择的选定值

JavaScript Regex 图像搜索需要要求图像标签中存在 CSS 类名

python 2.7 : matching expression using regex

javascript - jQuery + 正则表达式替换文本区域内的 href 和 src 值