【发布时间】:2015-06-29 20:19:22
【问题描述】:
我正在尝试在 JavaScript 中满足所有条件的情况下验证邮政信箱,但这对我不起作用。它与任何情况都不匹配
下面是我使用的reg表达式
function validatestreetAddress(street){
var streetval=street.value;
var pattern =new RegExp('/^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)/i');
if (streetval.match(pattern)) {
alert('We are unable to ship to a Post Office Box.\nPlease provide a different shipping address.');
}
只有一个 reg exp 适合我,但它不能满足邮政信箱验证的所有条件。
var pattern = new RegExp("\\b[P|p]*(OST|ost)*\\.*\\s*[O|o|0]*(ffice|FFICE)*\\.*\\s*[B|b][O|o|0][X|x]\\b");
任何人都可以建议在 reg ex 中有什么问题。
我想匹配“Box 123”、“Box-122”、“Box122”、“HC73 PO Box 217”、“PO Box125”、“PO Box”、“PO 123”、“PO Box 123”、 “邮政信箱”、“邮政信箱 123”、“邮政信箱 123”、“邮政信箱”、“邮政信箱 123”、“邮政信箱”、“邮政信箱 123”、“邮政信箱”、“邮政信箱 123”、“邮政信箱 123”、“邮政信箱” Office Box 123", "Post Office Box", "box #123", "box 122", "box 123", "number 123", "p box", "po box", post office box – user3495160 3 小时前
不匹配 = [ "The Postal Road", "Box Hill", "123 Some Street", "Controller's Office", "pollo St.", "123 box canyon rd", "777 Post Oak Blvd" ,“PSC 477 框 396”,“RR 1 框 1020”];
【问题讨论】:
-
给出你想要匹配的例子,以及不应该匹配的例子
-
我要匹配“Box 123”、“Box-122”、“Box122”、“HC73 PO Box 217”、“PO Box125”、“PO Box”、“PO 123”、“邮政信箱 123"、"邮政信箱"、"邮政信箱 123"、"邮政信箱 123"、"邮政信箱"、"邮政信箱 123"、"邮政信箱"、"邮政信箱 123"、"邮政信箱"、"邮政 123"、"邮政信箱" 123”、“邮政信箱 123”、“邮政信箱”、“123 号信箱”、“122 号信箱”、“123 号信箱”、“123 号”、“p 信箱”、“邮政信箱”、邮政信箱
-
不匹配 = [ "The Postal Road", "Box Hill", "123 Some Street", "Controller's Office", "pollo St.", "123 box canyon rd", " 777 Post Oak Blvd”、“PSC 477 Box 396”、“RR 1 Box 1020”];
标签: javascript regex validation pattern-matching