编辑
我玩了一下这个......不知道这是否会匹配你的案例的100%,但试试这个:
<html>
<head>
<title>testing...</title>
<script type="text/javascript" src="scripts/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" src="scripts/jquery.validate.min.js"></script>
<script type="text/javascript">
jQuery.validator.addMethod("nopobox", function(value, element) {
return ! /(?:p(?:ost)?\.?\s?[o|0](?:\.|ffice)?)\b|(?:b(?:[o|0]x)|(?:in))\b/i.test(value);
}, "PO Boxes are not allowed.");
$(document).ready(function() {$('#test').validate({rules: {address: {nopobox: false, required: true}}})});
</script>
</head>
</body>
<form id="test" action="#">
<input type="textbox" id="address" class="required nopobox" />
<input type="submit" />
</form>
</body>
</html>
当我运行此程序时,我收到“不允许邮政信箱”错误:邮政信箱、邮政信箱、邮政信箱、邮政信箱、邮政信箱、箱子、垃圾箱等。但马球路、testboxtest 等:没有警告。一个错误:po road throws and error...我不确定您是否可以在单个正则表达式中测试 100% 的案例。
结束编辑
好的...正则表达式大师似乎不在线...我试一试:
试试这个正则表达式(?:(?:p(?:[o|0]st)?\.?(?:[o|0](?:ffice)?\.?))|(?:b[o|0]x|bin))(?=\s\d)
它在powertoy中给了我以下信息:(输入为:s/(?:(?:p(?:[o|0]st)?\.?(?:[o|0](?:ffice)?\.?))|(?:b[o|0]x|bin))(?=\s\d)/**NO PO BOXES**/i
用于测试。
火柴:
- 邮政信箱 123
- 宝斌 1
- 1号仓
- 邮政信箱 134
- 宝斌 12
- 订单 12
- 宝12
- 订单 123
不匹配: