2013-02-28 61 views
0

JS代碼:創建一個從面具值正則表達式驗證郵政編碼

我使用郵政編碼確認以下代碼爲三個國家USA/BR/CA。

/*To Get ZipCodeRegex as per country */ 
function getZipRegEx(inputcountry) { 
var returntext; 
if (inputcountry == "USA") { 
    returntext = /^\d{5}$/ 
} 
else if (inputcountry == "CA") { 
    returntext = /^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\d{1}[A-Za-z]{1} *\d{1}[A-Za-z]{1}\d{1}$/ 
} 
else if (inputcountry == "BR") { 
    returntext = /^([0-9]){5}([-])([0-9]){3}$/ 
} 
return returntext; 

};

現在,客戶端已更新他們的代碼並使用MASK插件輸入文本框。蒙版圖案使用數據蒙版屬性進行渲染。以下是郵政編碼輸入控件的呈現HTML。

<input type="text" name="zip" id="zip" value="" class="required" data-mask="99999" /> 

問題區域:現在有最新的代碼基礎,但覆蓋超過10個國家和每個國家/州是具有郵政編碼不同的模式。

那麼,是否有可能根據掩碼值與輸入字段一起生成正則表達式模式?這樣,我不需要把國家的具體檢查。

請建議一些實施方法來涵蓋此方案。

在此先感謝。

+0

您的Javascript驗證碼是否在服務器上運行? – 2013-02-28 14:14:38

+0

@ dan1111如果我正確地理解了你的觀點,那麼你就會問它的服務器端驗證或客戶端驗證。該功能位於JavaScript文件(客戶端驗證)中。如果我錯了,請糾正我! – 2013-02-28 14:17:12

回答

1

MASK插件已經對輸入的郵政編碼進行了客戶端驗證。這就是它的目的。用你自己的客戶端驗證使用Javascript來複制它是沒有意義的。

客戶端驗證對用戶來說只是一種方便(快速報告錯誤,用戶可以在提交表單之前糾正錯誤);它從來不保證有效的輸入,因爲它可以很容易地繞過。

如果您想確保輸入正確,您必須在服務器端進行驗證。

+0

+1用於服務器端的回退驗證。 – Martijn 2013-02-28 14:26:05