Jquery Почтовый индекс clientvalidate - PullRequest
0 голосов
/ 20 января 2011

Я работаю над настраиваемым валидатором, чтобы проверить и заменить (если это возможно) почтовый индекс.Это голландский почтовый индекс, который должен выглядеть как «5050 AA».Когда пользователь вводит "5050AA", этот почтовый индекс следует заменить на "5050 AA".Я попытался сделать это, добавив на свою страницу следующий скрипт, который вызывается в customvalidator:

 <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», но не «5038 AA» в качестве соответствия, поэтому я не могу проверить рабочий почтовый индекс и не могу переписать действительный почтовый индекс.Что я делаю не так?

Это стандартная страница .aspx с формой и настраиваемым валидатором:

Ответы [ 2 ]

2 голосов
/ 20 января 2011

Попробуйте бороться с этим инструментом:

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx для проверки такого рода вещей.

0 голосов
/ 20 января 2011

"5038 AA" также соответствует myPCRegExp1 из-за '\ s?'

Я думаю, вам нужно это:

var myPCRegExp1 = new RegExp("^([1-9][0-9]{3})([a-zA-Z]{2})$", "i");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...