gpt4 book ai didi

jQuery ValidationEngine 和邮政信箱

转载 作者:行者123 更新时间:2023-12-01 00:18:47 26 4
gpt4 key购买 nike

我目前正在一个网站上使用 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 上查过。它在各种条目(邮政信箱、邮政信箱、邮政信箱等)中找到了预期的匹配项

如有任何帮助,我们将不胜感激。

银虎

最佳答案

当您定义自定义验证时,regex 将进行测试以验证值是否匹配表达式,并且在以下情况下将生成验证错误:事实并非如此。

按照您定义的方式,当值邮政信箱值时,notPoBox 通过

您需要检查正则表达式是否有相反的匹配项。

您可以通过使用函数并返回正则表达式 test() 的负值来做到这一点:

"notPoBox": {
"func": function (field, rules, i, options) {
var isPoBox = /\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/i;
return !isPoBox.test(field.val());
},
"alertText": "* P.O. Box addresses are not allowed for shipping"
},

A working example in this JSFiddle

关于jQuery ValidationEngine 和邮政信箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com