/*
功能說明:數字,字母,非負數,浮點數等的校驗
參數說明:
chkObject:判斷對象
chkFlg:判斷類型
1:非負浮點數 2:正整數 3:只有數字和點.
4:字母和數字 5:字母
返回值:有則爲true,否則爲false
*/
function checkObject(chkObject, chkFlg) {
if (trim(chkObject.value) != "") {
var tell = chkObject.value;
tell = tell.replace(" ", "");
tell = tell.replace("¥", "").replace("$", "");
var exrep;
switch (chkFlg) {
case 0: //浮點數,可帶逗號的數字
exrep = /^[-+]?(\d+\,)*\d+(\.\d+)?$/;
case 1: //非負浮點數,可帶逗號的數字.
exrep = /^(\d+\,)*\d+(\.\d+)?$/;
break;
case 2: //正整數+0
exrep = /^\d+$/;
break;
case 3: //只有數字和點
exrep = /^(\d+\.)*\d+?$/;
break;
case 4: //控制價格輸入,只能輸入帶2位小數
exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
break;
case 5: //控制輸入,只能輸入帶4位小數
exrep = /^\d{0,16}\.{0,1}(\d{1,4})?$/;
break;
case 6: //字母和數字
exrep = /^([a-zA-Z0-9])*$/;
break;
case 7: //字母
exrep = /^([a-zA-Z])*$/;
break;
case 8: //字母和數字但不能爲以下特殊字符:-,+,×,%,* /^[a-zA-Z0-9]*[^-\+\*%]*$/;
exrep = /^[a-zA-Z0-9]*[^+\*%]*$/;
break;
case 9:
exrep = /^([1-9][0-9]?|100)$/; //折扣1-100
break;
case 10: //正數(整數或浮點數,最多兩位小數)
exrep = /^[1-9][0-9]*\.{0,1}(\d{1,2})?$/;;
break;
case 11: //兩位數字
exrep = /^[0-9][0-9]$/;
break;
case 12:
//exrep = /^([1-3][0-1]?|31)$/; //1-31
exrep = /^([1-9]|[1-2][0-9]|3[0-1])$/; //1-31
//exrep = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
break;
case 13:
exrep = /^[1-8]$/;
break;
case 14:
exrep = /^([1-9][0-9]?|100)$/;
break;
case 15: //控制輸入,只能輸入帶4位小數的正負數
exrep = /^[-+]?\d{0,16}\.{0,1}(\d{1,4})?$/;
break;
case 16: //手機號碼驗證
//exrep = /^[1]+[3,4,5,7,8]+\d{9}/;
exrep = /(^[0-9]{11}$)/;
break;
case 17: //正數(整數或浮點數,最多兩位小數)
exrep = /^[1-9][0-9]*$/;;
break;
case 18: //數字
exrep = /^([0-9])*$/;
break;
case 19: //2位小數.價格
exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
break;
case 20: //2位小數.價格
exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
break;
case 21: //2位正整數
exrep = /^[1-9][0-9]$/;
break;
case 22: // 1-5 的整數
exrep = /^[1-5]$/;
break;
case 23: // 0-4 的整數
exrep = /^[0-4]$/;
break;
case 24: // 正數(整數或浮點數,最多1位小數)
exrep = /^[1-9][0-9]*\.{0,1}(\d{1,1})?$/;
break;
case 25: //數字和逗號
exrep = /^[0-9,]+$/;
break;
case 26:
exrep = /^[1-9]\d*$/;
break;
case 27: //正整數
exrep = /^\d+$/;
break;
case 28: //電話號碼
exrep = /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/;
break;
case 29: //電子郵件驗證
exrep = /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
break;
case 30: //郵編
exrep = /^[1-9]\d{5}$/;
break;
case 31:
exrep = /^([1-4][0-9][0-9]|500|[1-9]|[1-9][0-9])$/; //1-500
break;
default:
break;
;
}
if (chkFlg == 1) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入非負數 ");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
}
if (chkFlg == 12) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入1-31正整數 ");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
if (chkFlg == 2) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入正整數和0 ");
chkObject.value = "0";
document.getElementById(chkObject.id).focus();
return false;
}
}
if (chkFlg == 3) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入數字 ");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
}
if (chkFlg == 4) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 5) {
var hasComma = false;
if (tell != "") {
while (tell.indexOf(",") >= 0) {
tell = tell.replace(",", "");
hasComma = true;
}
}
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入正確的格式如:0.0000 ");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
else {
if (hasComma) {
chkObject.value = tell;
}
}
}
else if (chkFlg == 6) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入數字或字母!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 9) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入1—100的正整數!");
chkObject.value = "100";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 10) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,\r\n請輸入大於或等於1的正數值(最大隻能帶兩位小數)");
chkObject.value = "1.00";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 11) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("編碼只能是兩位的數字,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 13) {
if (!exrep.test(tell)) {
alert("請輸入1-8之間的正整數!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 14) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入1—100的正整數!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 15) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入正確的格式如:0.0000的正負數");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 16) {
if (!exrep.test(tell)) {
alert("輸入的手機號碼不正確,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
//document.getElementById(chkObject.id).select();
return false;
}
}
else if (chkFlg == 17) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入大於或等於1的正整數!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 18) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入數字!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 19) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
if (chkObject.value > 999999999999.999) {
alert("輸入價格不能大於12位整數,請重新輸入!");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 20) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
if (chkObject.value > 999999.99) {
alert("輸入數值不能大於6位整數,請重新輸入!");
chkObject.value = "0.00";
document.getElementById(chkObject.id).focus();
return false;
}
} else if (chkFlg == 22) {
if (!exrep.test(tell)) {
alert("請輸入1-5之間的正整數!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
} else if (chkFlg == 23) {
if (!exrep.test(tell)) {
alert("請輸入0-4之間的正整數!");
chkObject.value = "2";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 24) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請輸入正整數(最大隻能帶一位小數)");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 25) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,只能輸入數字和逗號!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 26) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,只能輸入大於0的正整數!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 27) {
if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
alert("輸入類型不正確,請輸入正整數 ");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 28) {
if (!exrep.test(tell)) {
alert("輸入的電話號碼不正確,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 29) { //電子郵件格式檢查
if (!exrep.test(tell)) {
alert("輸入的郵件格式不正確,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 30) { //郵編格式檢查
if (!exrep.test(tell)) {
alert("輸入的郵編格式不正確,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
else if (chkFlg == 31) {
if (!exrep.test(tell)) {
alert("輸入類型不正確,只能輸入1-500的正整數!");
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
}
else {
if (!exrep.test(tell)) {
alert("輸入類型不正確,請重新輸入!");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
}
}
else {
if (chkFlg == 10) {
//alert("輸入類型不正確,\r\n請輸入大於或等於1的正數值(最大隻能帶兩位小數)");
chkObject.value = "";
document.getElementById(chkObject.id).focus();
return false;
}
else if (chkFlg == 17) {
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
} else if (chkFlg == 26) {
chkObject.value = "1";
document.getElementById(chkObject.id).focus();
return false;
}
// else {
//// alert("輸入類型不正確,請重新輸入");
// chkObject.value = "0";
// return false;
// }
}
return true;
}