首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery Postal代码客户端验证

Jquery Postal代码客户端验证
EN

Stack Overflow用户
提问于 2011-01-20 18:43:55
回答 2查看 850关注 0票数 0

我正在开发一个自定义验证器,用于验证和替换(如果可能)邮政编码。这是一个荷兰邮政编码,应该看起来像"5050 AA“。当用户输入"5050AA“时,此邮政编码应替换为"5050 AA”。我尝试将以下脚本添加到我的页面中,该脚本在customvalidator中被调用:

代码语言:javascript
复制
 <script type="text/javascript">
            function Postcode_ClientValidate(source, arguments) {
                var val = arguments.Value
                var result = "";
                var myPCRegExp1 = new RegExp("^[1-9][0-9]{3}\s?[a-zA-Z]{2}$", "i");
                var myPCRegExp2 = new RegExp("(\d{4}) (\w{2})");    

                if ((!myPCRegExp1.test(val)) && (!myPCRegExp2.test(val))) {
                    arguments.IsValid = false;
                } else {
                    if (myPCRegExp1.test(val)) {
                        arguments.Value = val.replace(myPCRegExp1, "$1, $2");
                        arguments.IsValid = true;
                    } else if (myPCRegExp1.test(val)) {
                        arguments.IsValid = true;
                    }               
                }

                //jQuery("input#[HIERDEID]").val("Test");
            }
        </script>

但是,上面的脚本选择了"5038AA“而不是”5038AA“作为匹配,因此我无法验证有效的邮政编码,也无法重写为有效的邮政编码。我做错了什么?

它是一个标准的.aspx页面,带有一个表单和一个自定义验证器:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-20 20:36:29

试着用这个工具来解决这个问题:

用于测试这类事情的http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

票数 2
EN

Stack Overflow用户

发布于 2011-01-20 18:49:32

"5038 AA“也与myPCRegExp1匹配,因为”\s?“

我认为你需要这个:

代码语言:javascript
复制
var myPCRegExp1 = new RegExp("^([1-9][0-9]{3})([a-zA-Z]{2})$", "i");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4746109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档