Я работаю над настраиваемым валидатором, чтобы проверить и заменить (если это возможно) почтовый индекс.Это голландский почтовый индекс, который должен выглядеть как «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 с формой и настраиваемым валидатором: