【发布时间】:2011-01-20 10:43:54
【问题描述】:
我正在开发一个自定义验证器来验证和替换(如果可能的话)邮政编码。 这是一个荷兰邮政编码,应该看起来像“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 页面,带有一个表单和一个自定义验证器:
【问题讨论】:
标签: javascript jquery asp.net regex