- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在一个网站上使用 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"
},
关于jQuery ValidationEngine 和邮政信箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084500/
我正在尝试从外部 URL 中获取图像并将其放入特定大小的 div 中。 例如一个 300x200 的 div。外部 URL 上的图像可以是横向或纵向的,我不想用 overflow:hidden 之类的
我是一名优秀的程序员,十分优秀!