无法获取属性'match'的值:object为null或undefined

时间:2013-02-11 19:50:33

标签: jquery regex validation

我得到"无法获得财产的价值'匹配':对象为空或未定义"当下面的功能工作时。有趣的是,它在另一个页面上完美运行。有什么想法吗?

function valPoBox(sender, args) {
    var hasPObox = /^[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.)*/gi;
    var StreetAddress = $('.streetaddress').val();

    if (StreetAddress.match(hasPObox)) {
        args.IsValid = false;

        sender.ErrorMessage = "Address must not contain P.O. Box";
        $('.valPoBox').attr("ErrorMessage", sender.ErrorMessage);
    }
    else {
        args.IsValid = true;
    }

}

1 个答案:

答案 0 :(得分:1)

所有字符串都有match方法,因此您处理的内容不能是字符串。 .val()方法只返回两个不同的东西:找到元素时的字符串,以及找不到元素时的undefined。考虑到这一点,$('.streetaddress')必须返回0个元素。修改选择器,使其定位正确的元素以解决问题。