我正在使用customvalidator來驗證並替換(如果可能)郵政編碼。 這是荷蘭郵政編碼,應該看起來像「5050 AA」。當用戶輸入「5050AA」時,應將此郵政編碼替換爲「5050 AA」。我想這通過將下面的腳本到我的網頁,這就是所謂的的CustomValidator:Jquery郵政編碼clientvalidate
<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」作爲搭配,所以我無法驗證工作的郵政編碼,也無法重新編寫有效的郵政編碼。 我在做什麼錯?
這是一個形式和的CustomValidator一個標準的.aspx頁面: '\ S'
當對myPCRegExp1進行測試時,「5038 aa」沒有變爲真,這就是整個問題。我需要「5038 AA」,但也需要「5038AA」才能通過我的第一個正則表達式進行驗證。如果它沒有變得有效,我會返回一個錯誤,否則我會嘗試將代碼重寫爲「5038 AA」。 – Younes 2011-01-20 10:53:33