0

无论我在 StreetAddress 中输入什么,它都不会匹配正则表达式。无论是 PO Box PO BOX 邮政信箱。我似乎无法让它工作。有任何想法吗?

   function valPoBox(sender, args) {
        var hasPObox = new RegExp('\b[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\b');
        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;
        }
        $('.valPoBox').attr("errormessage", sender.ErrorMessage);
    }
4

1 回答 1

0

整个正则表达式太复杂了:

var poBoxRegex = /po?(st)? *(office)? box/gi;

结果:

"34 po box 333".match(poBoxRegex);
["po box"]
"34 postoffice box 333".match(poBoxRegex);
["postoffice box"]
"34 post office box 333".match(poBoxRegex);
["post office box"]
于 2013-02-11T18:55:21.983 回答