我目前正在为一个站点使用 jQuery 和 jquery ValidationEngine,它就像一个魅力。问题是我需要添加检查(和禁止)邮政信箱地址的功能。我环顾四周,找不到验证引擎可以正确使用的正则表达式。
我确实找到了一个适用于 Javascript 的正则表达式:
\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b
但是当我将该正则表达式从普通的 javascript 函数移动到验证引擎语言文件中时,正则表达式匹配所有内容,甚至是文本字段中的空白条目。
我添加到 jquery.validationengine-en.js 的正则表达式如下:
"notPoBox": {
"regex": /\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/,
"alertText": "* P.O. Box addresses are not allowed for shipping"
},
并且表单元素使用以下内容:
<input class="validate[custom[notPoBox]] text-input" type="text" id="ship_add1" name="ship_add2" value="" style="width:598px;" />
有什么方法可以让这个正则表达式在验证引擎框架内工作并正确匹配?我已经验证了正则表达式确实可以在页面中我自己的 javascript 上工作,因为我可以创建一个函数来匹配并在匹配时发出警报,如下所示:
function poChk() {
$("[id*='ship_add1']").blur(function() {
var pattern = new RegExp('\\b[p]*(ost)*\\.*\\s*[o|0]*(ffice)*\\.*\\s*b[o|0]x\\b', 'i');
if ($("[id*='ship_add1']").val().match(pattern)) {
alert('We are unable to ship to a Post Office Box.\nPlease provide a different shipping address.');
return false;
}
});
我还在http://www.regular-expressions.info/javascriptexample.html上进行了检查,发现在各种条目(邮政信箱、邮政信箱、邮政信箱等)上都符合预期
任何帮助,将不胜感激。
银虎