javascript很適合用於欄位驗証....而網路上都可以找到很多驗証方式....
一、是否輸入正確的身份証字號(資料來源:http://swf.com.tw/?p=94)
function checkID(idStr){ // 依照字母的編號排列,存入陣列備用。 var letters = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'W', 'Z', 'I', 'O'); // 儲存各個乘數 var multiply = new Array(1, 9, 8, 7, 6, 5, 4, 3, 2, 1); var nums = new Array(2); var firstChar; var firstNum; var lastNum; var total = 0; // 撰寫「正規表達式」。第一個字為英文字母, // 第二個字為1或2,後面跟著8個數字,不分大小寫。 var regExpID=/^[a-z](1|2)\d{8}$/i; // 使用「正規表達式」檢驗格式 if (idStr.search(regExpID)==-1) { // 基本格式錯誤 alert("請仔細填寫身份證號碼"); return false; } else { // 取出第一個字元和最後一個數字。 firstChar = idStr.charAt(0).toUpperCase(); lastNum = idStr.charAt(9); } // 找出第一個字母對應的數字,並轉換成兩位數數字。 for (var i=0; i<26; i++) { if (firstChar == letters[i]) { firstNum = i + 10; nums[0] = Math.floor(firstNum / 10); nums[1] = firstNum - (nums[0] * 10); break; } } // 執行加總計算 for(var i=0; i<multiply.length; i++){ if (i<2) { total += nums[i] * multiply[i]; } else { total += parseInt(idStr.charAt(i-1)) * multiply[i]; } } // 和最後一個數字比對 if ((10 - (total % 10))!= lastNum) { alert("身份證號碼寫錯了!"); return false; } return true; }
二、是否輸入正確的統一編號.台灣(資料來源:http://www.wretch.cc/blog/himiro/10593103 )
function idchk(idvalue) {
var tmp = new String("12121241");
var sum = 0;
re = /^\d{8}$/;
if (!re.test(idvalue)) {
alert("格式不對!");
return false;
}
for (i=0; i< 8; i++) {
s1 = parseInt(idvalue.substr(i,1));
s2 = parseInt(tmp.substr(i,1));
sum += cal(s1*s2);
}
if (!valid(sum)) {
if (idvalue.substr(6,1)=="7") return(valid(sum+1));
}
return(valid(sum));
}
function valid(n) {
return (n%10 == 0)?true:false;
}
function cal(n) {
var sum=0;
while (n!=0) {
sum += (n % 10);
n = (n - n%10) / 10; // 取整數
}
return sum;
}
三、是否為數字(資料來源:http://tw.myblog.yahoo.com/davidbulll/article?mid=79&prev=314&next=76)
function check() {
re = /^\d+$/;
if (!re.test(document.DonationIndex.txtAMT.value)) {
alert("欄位不能空白且只允許輸入整數!");
document.forms[0].t1.focus();
return false;
}
return true;
}
四、是否為E-Mail格式
function checkmail()
{
re1 = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
if (re1.exec(document.DonationIndex.txtEmail.value) == null)
{
alert("你的電子郵件格式不合!");
document.DonationIndex.txtEmail.focus();
return (false);
}
}
五、是否為日期格式
function dateValidationCheck(str){
var re = new RegExp("^([0-9]{4})[./]{1}([0-9]{1,2})[./]{1}([0-9]{1,2})$");
var strDataValue;
var infoValidation = true;
if ((strDataValue = re.exec(str)) != null){
var i;
i = parseFloat(strDataValue[1]);
if (i <= 0 || i > 9999){ // 年
infoValidation = false;
}
i = parseFloat(strDataValue[2]);
if (i <= 0 || i > 12){ // 月
infoValidation = false;
}
i = parseFloat(strDataValue[3]);
if (i <= 0 || i > 31){ // 日
infoValidation = false;
}
}else{
infoValidation = false;
}
if (!infoValidation){
alert('請輸入 YYYY/MM/DD 日期格式');
}
return infoValidation;
}