jquery - 无法获取属性值 'match' : object is null or undefined

标签 jquery regex validation

当下面的函数工作时,我收到“无法获取属性‘match’的值:对象为空或未定义”。有趣的是,它在另一个页面上运行得很好。有什么想法吗?

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;
    }

}

最佳答案

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

关于jquery - 无法获取属性值 'match' : object is null or undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819714/

相关文章:

c# - 正则表达式,匹配不同数量的集合

iphone - iOS导入自签名和自创建的CA证书

javascript - Jquery 步骤向导选择列表验证

javascript - 如何根据用户在文本框中键入的内容更新标签文本

javascript - jQuery DataTable - 以预期的方式隐藏行

java - 删除多个正则表达式的交集?

java - 正则表达式从字符串中查找特定模式字符串

angularjs - 自定义验证器未被调用

jquery - 在标题中隐藏带撇号的 div

Javascript DIV 在滚动上移动