正则表达式值检查不起作用

时间:2014-02-03 15:23:06

标签: javascript jquery regex validation

这是the page

如果您选择3个调制解调器中的一个,它将打开下面的表格。

在结算>地址第1行字段(左列),我正在尝试检查邮政信箱条目并在字段上方显示隐藏的消息。我们试图阻止PO Box,但它仍然应该允许提交,所以我将从表单上的jq val插件中单独处理它。

无论我尝试什么,它都无法正常工作。输入上的绑定正在工作,因为它正确记录,必须是正则表达式的问题,但我无法确定它。

这是当前的js

var pobox = new RegExp('[PO.]*\\s?B(ox)?.*\\d+', 'i');

$("#bill_address1").bind("change paste keyup", function(){
        if ($(this).val().match(pobox)) {                               
            $('#pobox-warning').fadeIn(50);
            console.log('box');    
        }       
        else {
            $('#pobox-warning').fadeOut(50);
            console.log('no box'); 
        }

    });

任何帮助将不胜感激 - 谢谢!

3 个答案:

答案 0 :(得分:3)

在我看来,像

这样的简单正则表达式模式
/PO *Box/gi

效果最好。忽略大小写。匹配字母PO和任意数量的空格,后跟单词Box。

编辑:

或者匹配整个邮政信箱行,有或没有期间:

/P\.?O\.? *Box *\d*/gi

答案 1 :(得分:1)

正则表达式的初始部分匹配 单个“P”,“O”或“。”。你可能想要更像的东西:

var pobox = /(P\.?O\.?)?\s*B(ox)?.*\d+/i;

尽可能在JavaScript中使用本机正则表达式语法要容易得多,因为它似乎就是这种情况。

答案 2 :(得分:0)

让它合作 var pattern = /^[P|p](OST|ost).*\s*[O|o|0](ffice|FFICE).*\ * [b | b]〔O | O | 0] [X | X] \ S *(\ d)* / GI;

欣赏每个人的意见