<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    OMG,到底在尋找什么..................
    (構造一個完美的J2EE系統所需要的完整知識體系)
    posts - 198,  comments - 37,  trackbacks - 0
    原貼地址:http://www.javaeye.com/topic/30759

    /**
    * 取得字符串的字節長度
    */

    代碼
    1. function?strlen(str) ??
    2. { ??
    3. ????var?i; ??
    4. ????var?len; ??
    5. ???? ??
    6. ????len?=?0; ??
    7. ????for?(i=0;i<str.length;i++) ??
    8. ????{ ??
    9. ????????if?(str.charCodeAt(i)>255)?len+=2;?else?len++; ??
    10. ????} ??
    11. ????return?len; ??
    12. } ??
    13. ???

    /*
    * 判斷是否為數字,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_number(obj) ??
    2. {??????? ??
    3. ????if?(/^\d+$/.test(obj.value)) ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????else? ??
    8. ????{ ??
    9. ???????f_alert(obj,"請輸入數字"); ??
    10. ???????return?false; ??
    11. ????} ??
    12. } ??
    13. ???

    /*
    * 判斷是否為自然數,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_naturalnumber(obj) ??
    2. {??????? ??
    3. ????var?s?=?obj.value; ??
    4. ????if?(/^[0-9]+$/.test(?s?)?&&?(s?>?0)) ??
    5. ????{ ??
    6. ???????return?true; ??
    7. ????}? ??
    8. ????else? ??
    9. ????{ ??
    10. ????????f_alert(obj,"請輸入自然數"); ??
    11. ????????return?false; ??
    12. ????} ??
    13. } ??
    14. ???

    /*
    * 判斷是否為整數,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_integer(obj) ??
    2. {??????? ??
    3. ????if?(/^(\+|-)?\d+$/.test(?obj.value?))? ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????else? ??
    8. ????{ ??
    9. ????????f_alert(obj,"請輸入整數"); ??
    10. ????????return?false; ??
    11. ????} ??
    12. } ??
    13. ???

    /*
    * 判斷是否為實數,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_float(obj) ??
    2. {??????? ??
    3. ????if?(/^(\+|-)?\d+($|\.\d+$)/.test(?obj.value?))? ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????else? ??
    8. ????{ ??
    9. ????????f_alert(obj,"請輸入實數"); ??
    10. ???????return?false; ??
    11. ????} ??
    12. } ??
    13. ???

    /*
    * 校驗數字的長度和精度
    */
    代碼
    1. function?f_check_double(obj){ ??
    2. ????var?numReg; ??
    3. ????var?value?=?obj.value; ??
    4. ????var?strValueTemp,?strInt,?strDec;??? ??
    5. ????var?dtype?=?obj.eos_datatype; ??
    6. ????var?pos_dtype?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(","); ??
    7. ????var?len?=?pos_dtype[0],?prec?=?pos_dtype[1]; ??
    8. ????try??
    9. ????{??????? ??
    10. ????????numReg?=/[\-]/; ??
    11. ????????strValueTemp?=?value.replace(numReg,?""); ??
    12. ????????numReg?=/[\+]/; ??
    13. ????????strValueTemp?=?strValueTemp.replace(numReg,?""); ??
    14. ????????//整數 ??
    15. ????????if(prec==0){ ??
    16. ????????????numReg?=/[\.]/; ??
    17. ????????????if(numReg.test(value)?==?true){ ??
    18. ????????????????f_alert(obj,?"輸入必須為整數類型"); ??
    19. ????????????????return?false;??? ??
    20. ????????????}??????????? ??
    21. ????????}??????? ??
    22. ????????if(strValueTemp.indexOf(".")?<?0?){ ??
    23. ????????????if(strValueTemp.length?>(?len?-?prec)){ ??
    24. ????????????????f_alert(obj,?"整數位不能超過"+?(len?-?prec)?+"位"); ??
    25. ????????????????return?false; ??
    26. ????????????}??????? ??
    27. ????????}else{ ??
    28. ????????????strInt?=?strValueTemp.substr(?0,?strValueTemp.indexOf(".")?);??????? ??
    29. ????????????if(strInt.length?>(?len?-?prec)){ ??
    30. ????????????????f_alert(obj,?"整數位不能超過"+?(len?-?prec)?+"位"); ??
    31. ????????????????return?false; ??
    32. ????????????} ??
    33. ????????????strDec?=?strValueTemp.substr(?(strValueTemp.indexOf(".")+1),?strValueTemp.length?);? ??
    34. ????????????if(strDec.length?>?prec){ ??
    35. ????????????????f_alert(obj,?"小數位不能超過"+??prec?+"位"); ??
    36. ????????????????return?false; ??
    37. ????????????}??????? ??
    38. ????????}??????? ??
    39. ????????return?true; ??
    40. ????}catch(e){ ??
    41. ????????alert("in?f_check_double?=?"?+?e); ??
    42. ????????return?false; ??
    43. ????}??? ??
    44. } ??
    45. ???

    /*
    * 校驗數字的最小最大值
    * 返回bool
    */
    代碼
    1. function?f_check_interval(obj) ??
    2. { ??
    3. ????var?value?=?parseFloat(obj.value); ??
    4. ??
    5. ????var?dtype?=?obj.eos_datatype; ??
    6. ????var?pos_dtype?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(","); ??
    7. ???? ??
    8. ????var?minLimit?=?pos_dtype[0]; ??
    9. ????var?maxLimit?=?pos_dtype[1]; ??
    10. ????var?minVal?=?parseFloat(pos_dtype[0]); ??
    11. ????var?maxVal?=?parseFloat(pos_dtype[1]);? ??
    12. ???? ??
    13. ????if(isNaN(value)) ??
    14. ????{ ??
    15. ????????f_alert(obj,?"值必須為數字"); ??
    16. ????????return?false; ??
    17. ????} ??
    18. ????if((isNaN(minVal)?&&?(minLimit?!=?"-"))?||?(isNaN(maxVal)?&&?(maxLimit?!=?"+"))) ??
    19. ????{ ??
    20. ????????f_alert(obj,?"邊界值必須為數字或-、+"); ??
    21. ????????return?false; ??
    22. ????} ??
    23. ??
    24. ????if(minLimit?==?"-"?&&?!isNaN(maxVal)) ??
    25. ????{ ??
    26. ????????if(value?>?maxVal) ??
    27. ????????{ ??
    28. ????????????f_alert(obj,?"值不能超過"?+?maxVal); ??
    29. ????????????return?false; ??
    30. ????????} ??
    31. ????} ??
    32. ???? ??
    33. ????if(!isNaN(minVal)?&&?maxLimit?==?"+") ??
    34. ????{??????? ??
    35. ????????if(value?<?minVal) ??
    36. ????????{ ??
    37. ????????????f_alert(obj,?"值不能小于"?+?minVal); ??
    38. ????????????return?false; ??
    39. ????????} ??
    40. ????} ??
    41. ???? ??
    42. ????if(!isNaN(minVal)?&&?!isNaN(maxVal)) ??
    43. ????{ ??
    44. ????????if(minVal?>?maxVal) ??
    45. ????????{ ??
    46. ????????????f_alert(obj,?"起始值"?+?minVal?+?"不能大于終止值"?+?maxVal); ??
    47. ????????}else??
    48. ????????{ ??
    49. ????????????if(!(value?<=?maxVal?&&?value?>=?minVal)) ??
    50. ????????????{ ??
    51. ????????????????f_alert(obj,?"值應該在"?+?minVal?+?"和"?+?maxVal?+?"之間"); ??
    52. ????????????????return?false; ??
    53. ????????????} ??
    54. ????????} ??
    55. ????} ??
    56. ????return?true; ??
    57. } ??
    58. ???

    /*
    用途:檢查輸入字符串是否只由漢字組成
    如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_zh(obj){ ??
    2. ????if?(/^[\u4e00-\u9fa5]+$/.test(obj.value))?{ ??
    3. ??????return?true; ??
    4. ????} ??
    5. ????f_alert(obj,"請輸入漢字"); ??
    6. ????return?false; ??
    7. } ??
    8. ???

    /*
    * 判斷是否為小寫英文字母,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_lowercase(obj) ??
    2. {??????? ??
    3. ????if?(/^[a-z]+$/.test(?obj.value?))? ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????f_alert(obj,"請輸入小寫英文字母"); ??
    8. ????return?false; ??
    9. } ??
    10. ???

    /*
    * 判斷是否為大寫英文字母,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_uppercase(obj) ??
    2. {??????? ??
    3. ????if?(/^[A-Z]+$/.test(?obj.value?))? ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????f_alert(obj,"請輸入大寫英文字母"); ??
    8. ????return?false; ??
    9. } ??
    10. ???

    /*
    * 判斷是否為英文字母,是則返回true,否則返回false
    */
    代碼
    1. function?f_check_letter(obj) ??
    2. {??????? ??
    3. ????if?(/^[A-Za-z]+$/.test(?obj.value?))? ??
    4. ????{ ??
    5. ???????return?true; ??
    6. ????}? ??
    7. ????f_alert(obj,"請輸入英文字母"); ??
    8. ????return?false; ??
    9. } ??
    10. ???

    /*
    用途:檢查輸入字符串是否只由漢字、字母、數字組成
    輸入:
    value:字符串
    返回:
    如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_ZhOrNumOrLett(obj){????//判斷是否是漢字、字母、數字組成 ??
    2. ????var?regu?=?"^[0-9a-zA-Z\u4e00-\u9fa5]+$";??? ??
    3. ????var?re?=?new?RegExp(regu); ??
    4. ????if?(re.test(?obj.value?))?{ ??
    5. ??????return?true; ??
    6. ????} ??
    7. ????f_alert(obj,"請輸入漢字、字母或數字"); ??
    8. ????return?false; ??
    9. } ??
    10. ???

    /*
    用途:校驗ip地址的格式
    輸入:strIP:ip地址
    返回:如果通過驗證返回true,否則返回false;
    */
    代碼
    1. function?f_check_IP(obj)? ??
    2. {? ??
    3. ????var?re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;?//匹配IP地址的正則表達式 ??
    4. ????if(re.test(?obj.value?)) ??
    5. ????{ ??
    6. ????????if(?RegExp.$1?<256?&&?RegExp.$2<256?&&?RegExp.$3<256?&&?RegExp.$4<256)?return?true; ??
    7. ????} ??
    8. ????f_alert(obj,"請輸入合法的計算機IP地址"); ??
    9. ????return?false;? ??
    10. } ??
    11. ???

    /*
    用途:檢查輸入對象的值是否符合端口號格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_port(obj) ??
    2. { ??
    3. ????if(!f_check_number(obj)) ??
    4. ????????return?false; ??
    5. ????if(obj.value?<?65536) ??
    6. ????????return?true; ??
    7. ????f_alert(obj,"請輸入合法的計算機IP地址端口號"); ??
    8. ????return?false;? ??
    9. } ??
    10. ???

    /*
    用途:檢查輸入對象的值是否符合網址格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_URL(obj){?? ??
    2. ????var?myReg?=?/^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;? ??
    3. ????if(myReg.test(?obj.value?))?return?true;? ??
    4. ????f_alert(obj,"請輸入合法的網頁地址"); ??
    5. ????return?false;? ??
    6. } ??
    7. ???

    /*
    用途:檢查輸入對象的值是否符合E-Mail格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_email(obj){?? ??
    2. ????var?myReg?=?/^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;? ??
    3. ????if(myReg.test(?obj.value?))?return?true;? ??
    4. ????f_alert(obj,"請輸入合法的電子郵件地址"); ??
    5. ????return?false;? ??
    6. } ??
    7. ???

    /*
    要求:一、移動電話號碼為11或12位,如果為12位,那么第一位為0
    二、11位移動電話號碼的第一位和第二位為"13"
    三、12位移動電話號碼的第二位和第三位為"13"
    用途:檢查輸入手機號碼是否正確
    輸入:
    s:字符串
    返回:
    如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_mobile(obj){??? ??
    2. ????var?regu?=/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/; ??
    3. ????var?re?=?new?RegExp(regu); ??
    4. ????if?(re.test(?obj.value?))?{ ??
    5. ??????return?true; ??
    6. ????} ??
    7. ????f_alert(obj,"請輸入正確的手機號碼"); ??
    8. ????return?false;??? ??
    9. } ??
    10. ???

    /*
    要求:一、電話號碼由數字、"("、")"和"-"構成
    二、電話號碼為3到8位
    三、如果電話號碼中包含有區號,那么區號為三位或四位
    四、區號用"("、")"或"-"和其他部分隔開
    用途:檢查輸入的電話號碼格式是否正確
    輸入:
    strPhone:字符串
    返回:
    如果通過驗證返回true,否則返回false
    */
    代碼
    1. function?f_check_phone(obj)? ??
    2. { ??
    3. ????var?regu?=/(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;? ??
    4. ????var?re?=?new?RegExp(regu); ??
    5. ????if?(re.test(?obj.value?))?{ ??
    6. ??????return?true; ??
    7. ????} ??
    8. ????f_alert(obj,"請輸入正確的電話號碼"); ??
    9. ????return?false; ??
    10. } ??
    11. ???

    /* 判斷是否為郵政編碼 */
    代碼
    1. function?f_check_zipcode(obj) ??
    2. { ??
    3. ????if(!f_check_number(obj)) ??
    4. ????????return?false; ??
    5. ????if(obj.value.length!=6) ??
    6. ????{ ??
    7. ????????f_alert(obj,"郵政編碼長度必須是6位"); ??
    8. ????????return?false; ??
    9. ????} ??
    10. ????return?true; ??
    11. } ??
    12. ???

    /*
    用戶ID,可以為數字、字母、下劃線的組合,
    第一個字符不能為數字,且總長度不能超過20。
    */
    代碼
    1. function?f_check_userID(obj) ??
    2. { ??
    3. ????var?userID?=?obj.value; ??
    4. ????if(userID.length?>?20) ??
    5. ????{ ??
    6. ????????f_alert(obj,"ID長度不能大于20"); ??
    7. ????????return?false; ??
    8. ????} ??
    9. ??
    10. ????if(!isNaN(userID.charAt(0))) ??
    11. ????{ ??
    12. ????????f_alert(obj,"ID第一個字符不能為數字"); ??
    13. ????????return?false; ??
    14. ????} ??
    15. ????if(!/^\w{1,20}$/.test(userID))? ??
    16. ????{ ??
    17. ????????f_alert(obj,"ID只能由數字、字母、下劃線組合而成"); ??
    18. ????????return?false; ??
    19. ????} ??
    20. ????return?true; ??
    21. } ??
    22. ???

    /*
    功能:驗證身份證號碼是否有效
    提示信息:未輸入或輸入身份證號不正確!
    使用:f_check_IDno(obj)
    返回:bool
    */
    代碼
    1. function?f_check_IDno(obj) ??
    2. {? ??
    3. ????var?aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}; ??
    4. ? ??
    5. ????var?iSum?=?0; ??
    6. ????var?info?=?""; ??
    7. ????var?strIDno?=?obj.value; ??
    8. ????var?idCardLength?=?strIDno.length;?? ??
    9. ????if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno))? ??
    10. ????{ ??
    11. ????????f_alert(obj,"非法身份證號"); ??
    12. ????????return?false; ??
    13. ????} ??
    14. ? ??
    15. ????//在后面的運算中x相當于數字10,所以轉換成a ??
    16. ????strIDno?=?strIDno.replace(/x$/i,"a"); ??
    17. ??
    18. ????if(aCity[parseInt(strIDno.substr(0,2))]==null) ??
    19. ????{ ??
    20. ????????f_alert(obj,"非法地區"); ??
    21. ????????return?false; ??
    22. ????} ??
    23. ???? ??
    24. ????if?(idCardLength==18) ??
    25. ????{ ??
    26. ????????sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2)); ??
    27. ????????var?d?=?new?Date(sBirthday.replace(/-/g,"/")) ??
    28. ????????if(sBirthday!=(d.getFullYear()+"-"+?(d.getMonth()+1)?+?"-"?+?d.getDate())) ??
    29. ????????{??????? ??
    30. ????????????f_alert(obj,"非法生日"); ??
    31. ????????????return?false; ??
    32. ????????} ??
    33. ??
    34. ????????for(var?i?=?17;i>=0;i?--) ??
    35. ????????????iSum?+=?(Math.pow(2,i)?%?11)?*?parseInt(strIDno.charAt(17?-?i),11); ??
    36. ??
    37. ????????if(iSum%11!=1) ??
    38. ????????{ ??
    39. ????????????f_alert(obj,"非法身份證號"); ??
    40. ????????????return?false; ??
    41. ????????} ??
    42. ????} ??
    43. ????else?if?(idCardLength==15) ??
    44. ????{ ??
    45. ????????sBirthday?=?"19"?+?strIDno.substr(6,2)?+?"-"?+?Number(strIDno.substr(8,2))?+?"-"?+?Number(strIDno.substr(10,2)); ??
    46. ????????var?d?=?new?Date(sBirthday.replace(/-/g,"/")) ??
    47. ????????var?dd?=?d.getFullYear().toString()?+?"-"?+?(d.getMonth()+1)?+?"-"?+?d.getDate();??? ??
    48. ????????if(sBirthday?!=?dd) ??
    49. ????????{ ??
    50. ????????????f_alert(obj,"非法生日"); ??
    51. ????????????return?false; ??
    52. ????????} ??
    53. ????} ??
    54. ????return?true;? ??
    55. } ??
    56. ???

    /*
    * 判斷字符串是否符合指定的正則表達式
    */
    代碼
    1. function?f_check_formatStr(obj) ??
    2. { ??
    3. ????var?str?=?obj.value; ??
    4. ????var?dtype?=?obj.eos_datatype; ??
    5. ????var?regu?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));????//指定的正則表達式 ??
    6. ????var?re?=?new?RegExp(regu); ??
    7. ????if(re.test(str)) ??
    8. ????????return?true; ??
    9. ????f_alert(obj?,?"不符合指定的正則表達式要求"); ??
    10. ????return?false;??? ??
    11. } ??
    12. ???

    /*
    功能:判斷是否為日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
    提示信息:未輸入或輸入的日期格式錯誤!
    使用:f_check_date(obj)
    返回:bool
    */
    代碼
    1. function?f_check_date(obj) ??
    2. { ??
    3. ????var?date?=?Trim(obj.value); ??
    4. ????var?dtype?=?obj.eos_datatype; ??
    5. ????var?format?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));??//日期格式 ??
    6. ????var?year,month,day,datePat,matchArray; ??
    7. ??
    8. ????if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) ??
    9. ????????datePat?=?/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/; ??
    10. ????else?if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format)) ??
    11. ????????datePat?=?/^(\d{4})年(\d{1,2})月(\d{1,2})日$/; ??
    12. ????else?if(format=="yyyyMMdd") ??
    13. ????????datePat?=?/^(\d{4})(\d{2})(\d{2})$/; ??
    14. ????else??
    15. ????{ ??
    16. ????????f_alert(obj,"日期格式不對"); ??
    17. ????????return?false; ??
    18. ????} ??
    19. ????matchArray?=?date.match(datePat); ??
    20. ????if(matchArray?==?null)? ??
    21. ????{ ??
    22. ????????f_alert(obj,"日期長度不對,或日期中有非數字符號"); ??
    23. ????????return?false; ??
    24. ????} ??
    25. ????if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) ??
    26. ????{ ??
    27. ????????year?=?matchArray[1]; ??
    28. ????????month?=?matchArray[3]; ??
    29. ????????day?=?matchArray[4]; ??
    30. ????}?else??
    31. ????{ ??
    32. ????????year?=?matchArray[1]; ??
    33. ????????month?=?matchArray[2]; ??
    34. ????????day?=?matchArray[3]; ??
    35. ????} ??
    36. ????if?(month?<?1?||?month?>?12) ??
    37. ????{????????????? ??
    38. ????????f_alert(obj,"月份應該為1到12的整數"); ??
    39. ????????return?false; ??
    40. ????} ??
    41. ????if?(day?<?1?||?day?>?31) ??
    42. ????{ ??
    43. ????????f_alert(obj,"每個月的天數應該為1到31的整數"); ??
    44. ????????return?false; ??
    45. ????}????? ??
    46. ????if?((month==4?||?month==6?||?month==9?||?month==11)?&&?day==31) ??
    47. ????{ ??
    48. ????????f_alert(obj,"該月不存在31號"); ??
    49. ????????return?false; ??
    50. ????}????? ??
    51. ????if?(month==2) ??
    52. ????{ ??
    53. ????????var?isleap=(year?%?4==0?&&?(year?%?100?!=0?||?year?%?400==0)); ??
    54. ????????if?(day>29) ??
    55. ????????{??????????????? ??
    56. ????????????f_alert(obj,"2月最多有29天"); ??
    57. ????????????return?false; ??
    58. ????????} ??
    59. ????????if?((day==29)?&&?(!isleap)) ??
    60. ????????{??????????????? ??
    61. ????????????f_alert(obj,"閏年2月才有29天"); ??
    62. ????????????return?false; ??
    63. ????????} ??
    64. ????} ??
    65. ????return?true; ??
    66. } ??
    67. ???

    /*
    功能:校驗的格式為yyyy年MM月dd日HH時mm分ss秒,yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss,yyyyMMddHHmmss
    提示信息:未輸入或輸入的時間格式錯誤
    使用:f_check_time(obj)
    返回:bool
    */
    代碼
    1. function?f_check_time(obj) ??
    2. { ??
    3. ????var?time?=?Trim(obj.value); ??
    4. ????var?dtype?=?obj.eos_datatype; ??
    5. ????var?format?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));??//日期格式 ??
    6. ????var?datePat,matchArray,year,month,day,hour,minute,second; ??
    7. ??
    8. ????if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})?(HH:mm:ss)$/.test(format)) ??
    9. ????????datePat?=?/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})?(\d{1,2}):(\d{1,2}):(\d{1,2})$/; ??
    10. ????else?if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH時mm分ss秒)$/.test(format)) ??
    11. ????????datePat?=?/^(\d{4})年(\d{1,2})月(\d{1,2})日(\d{1,2})時(\d{1,2})分(\d{1,2})秒$/; ??
    12. ????else?if(format?==?"yyyyMMddHHmmss") ??
    13. ????????datePat?=?/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/; ??
    14. ????else??
    15. ????{ ??
    16. ????????f_alert(obj,"日期格式不對"); ??
    17. ????????return?false; ??
    18. ????} ??
    19. ????matchArray?=?time.match(datePat); ??
    20. ????if(matchArray?==?null)? ??
    21. ????{ ??
    22. ????????f_alert(obj,"日期長度不對,或日期中有非數字符號"); ??
    23. ????????return?false; ??
    24. ????} ??
    25. ????if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})?(HH:mm:ss)$/.test(format)) ??
    26. ????{ ??
    27. ????????year?=?matchArray[1]; ??
    28. ????????month?=?matchArray[3]; ??
    29. ????????day?=?matchArray[4]; ??
    30. ????????hour?=?matchArray[5]; ??
    31. ????????minute?=?matchArray[6]; ??
    32. ????????second?=?matchArray[7]; ??
    33. ????}?else??
    34. ????{ ??
    35. ????????year?=?matchArray[1]; ??
    36. ????????month?=?matchArray[2]; ??
    37. ????????day?=?matchArray[3]; ??
    38. ????????hour?=?matchArray[4]; ??
    39. ????????minute?=?matchArray[5]; ??
    40. ????????second?=?matchArray[6]; ??
    41. ????} ??
    42. ????if?(month?<?1?||?month?>?12) ??
    43. ????{????????????? ??
    44. ????????f_alert(obj,"月份應該為1到12的整數"); ??
    45. ????????return?false; ??
    46. ????} ??
    47. ????if?(day?<?1?||?day?>?31) ??
    48. ????{??????????? ??
    49. ????????f_alert(obj,"每個月的天數應該為1到31的整數"); ??
    50. ????????return?false; ??
    51. ????}????? ??
    52. ????if?((month==4?||?month==6?||?month==9?||?month==11)?&&?day==31) ??
    53. ????{????????? ??
    54. ????????f_alert(obj,"該月不存在31號"); ??
    55. ????????return?false; ??
    56. ????}????? ??
    57. ????if?(month==2) ??
    58. ????{ ??
    59. ????????var?isleap=(year?%?4==0?&&?(year?%?100?!=0?||?year?%?400==0)); ??
    60. ????????if?(day>29) ??
    61. ????????{??????????????? ??
    62. ????????????f_alert(obj,"2月最多有29天"); ??
    63. ????????????return?false; ??
    64. ????????} ??
    65. ????????if?((day==29)?&&?(!isleap)) ??
    66. ????????{??????????????? ??
    67. ????????????f_alert(obj,"閏年2月才有29天"); ??
    68. ????????????return?false; ??
    69. ????????} ??
    70. ????} ??
    71. ????if(hour<0?||?hour>23) ??
    72. ????{ ??
    73. ????????f_alert(obj,"小時應該是0到23的整數"); ??
    74. ????????return?false; ??
    75. ????} ??
    76. ????if(minute<0?||?minute>59) ??
    77. ????{ ??
    78. ????????f_alert(obj,"分應該是0到59的整數"); ??
    79. ????????return?false; ??
    80. ????} ??
    81. ????if(second<0?||?second>59) ??
    82. ????{ ??
    83. ????????f_alert(obj,"秒應該是0到59的整數"); ??
    84. ????????return?false; ??
    85. ????} ??
    86. ????return?true; ??
    87. } ??
    88. ???

    /*判斷當前對象是否可見*/
    代碼
    1. function?isVisible(obj){ ??
    2. ????var?visAtt,disAtt; ??
    3. ????try{ ??
    4. ????????disAtt=obj.style.display; ??
    5. ????????visAtt=obj.style.visibility; ??
    6. ????}catch(e){} ??
    7. ????if(disAtt=="none"?||?visAtt=="hidden") ??
    8. ????????return?false; ??
    9. ????return?true; ??
    10. } ??
    11. ???

    /*判斷當前對象及其父對象是否可見*/
    代碼
    1. function?checkPrVis(obj){ ??
    2. ????var?pr=obj.parentNode; ??
    3. ????do{ ??
    4. ????????if(pr?==?undefined?||?pr?==?"undefined")?return?true; ??
    5. ????????else{ ??
    6. ????????????if(!isVisible(pr))?return?false; ??
    7. ????????} ??
    8. ????}while(pr=pr.parentNode); ??
    9. ????return?true; ??
    10. } ??
    11. ???

    /* 彈出警告對話框,用戶點確定后將光標置于出錯文本框上, 并且將原來輸入內容選中。*/
    代碼
    1. function?f_alert(obj,alertInfo) ??
    2. { ??
    3. ????var?caption?=?obj.getAttribute("eos_displayname"); ??
    4. ????if(caption?==?null) ??
    5. ????????caption?=?""; ??
    6. ????alert(caption?+?":"?+?alertInfo?+?"!");? ??
    7. ????obj.select(); ??
    8. ????if(isVisible(obj)?&&?checkPrVis(obj)) ??
    9. ????????obj.focus(); ??
    10. } ??
    11. ???

    /**
    * 檢測字符串是否為空
    */
    代碼
    1. function?isnull(str) ??
    2. { ??
    3. ????var?i; ??
    4. ????if(str.length?==?0) ??
    5. ????????return?true; ??
    6. ????for?(i=0;i<str.length;i++) ??
    7. ????{ ??
    8. ????????if?(str.charAt(i)!='?')? ??
    9. ????????????return?false; ??
    10. ????} ??
    11. ????return?true; ??
    12. } ??
    13. ???

    /**
    * 檢測指定文本框輸入是否合法。
    * 如果用戶輸入的內容有錯,則彈出提示對話框,
    * 同時將焦點置于該文本框上,并且該文本框前面
    * 會出現一個警告圖標(輸入正確后會自動去掉)。
    */
    代碼
    1. function?checkInput(object) ??
    2. { ??
    3. ????var?image; ??
    4. ????var?i; ??
    5. ????var?length; ??
    6. ??
    7. ????if(object.eos_maxsize?+?""?!=?"undefined")?length?=?object.eos_maxsize; ??
    8. ????else?length?=?0; ??
    9. ??
    10. ????if?(object.eos_isnull=="true"?&&?isnull(object.value))??return?true; ??
    11. ??
    12. ????/*?長度校驗?*/??
    13. ????if(length?!=?0?&&?strlen(object.value)?>?parseInt(length))?{ ??
    14. ????????????f_alert(object,?"超出最大長度"?+?length); ??
    15. ????????????return?false; ??
    16. ????}? ??
    17. ????/*?數據類型校驗?*/??
    18. ????else?{ ??
    19. ????????if?(object.eos_datatype?+?""?!=?"undefined") ??
    20. ????????{??????? ??
    21. ??
    22. ????????????var?dtype?=?object.eos_datatype; ??
    23. ????????????var?objName?=?object.name; ??
    24. ????????????//如果類型名后面帶有括號,則視括號前面的字符串為校驗類型 ??
    25. ????????????if(dtype.indexOf("(")?!=?-1) ??
    26. ????????????????dtype?=?dtype.substring(0,dtype.indexOf("(")); ??
    27. ????????????//根據頁面元素的校驗類型進行校驗 ??
    28. ????????????try{ ??
    29. ????????????????if(eval("f_check_"?+?dtype?+?"(object)")?!=?true) ??
    30. ????????????????????return?false; ??
    31. ????????????}catch(e){return?true;} ??
    32. ????????????/*??如果form中存在name前半部分相同,并且同時存在以"min"和"max"結尾的表單域, ?
    33. ????????????????那么視為按區間查詢。即"min"結尾的表單域的值要小于等于"max"結尾的表單域的值。?*/??
    34. ????????????if(objName.substring((objName.length-3),objName.length)=="min") ??
    35. ????????????{ ??
    36. ????????????????var?objMaxName?=?objName.substring(0,?(objName.length-3))?+?"max"; ??
    37. ????????????????if(document.getElementById(objMaxName)?!=?undefined?&&?document.getElementById(objMaxName)?!=?"undefined"?) ??
    38. ????????????????{ ??
    39. ????????????????????if(checkIntervalObjs(object,?document.getElementById(objMaxName))?!=?true) ??
    40. ????????????????????????return?false;??????????????????? ??
    41. ????????????????} ??
    42. ????????????}??????????? ??
    43. ????????} ??
    44. ????} ??
    45. ????return?true; ??
    46. } ??
    47. ???

    /* 檢測表單中所有輸入項的正確性,一般用于表單的onsubmit事件 */
    代碼
    1. function?checkForm(myform) ??
    2. { ??
    3. ????var?i; ??
    4. ????for?(i=0;i<myform.elements.length;i++) ??
    5. ????{ ??
    6. ????????/*?非自定義屬性的元素不予理睬?*/????? ??
    7. ????????if?(myform.elements[i].eos_displayname?+?""?==?"undefined")?continue; ??
    8. ????????/*?非空校驗?*/??
    9. ????????if?(myform.elements[i].eos_isnull=="false"?&&?isnull(myform.elements[i].value)){ ??
    10. ????????????f_alert(myform.elements[i],"不能為空"); ??
    11. ????????????return?false; ??
    12. ????????}??????? ??
    13. ????????/*?數據類型校驗?*/??
    14. ????????if?(checkInput(myform.elements[i])==false) ??
    15. ????????????return?false;??????????????? ??
    16. ????} ??
    17. ????return?true; ??
    18. } ??
    19. ???

    /**
    * 校驗兩個表單域數據的大小,目前只允許比較日期和數字。
    * @param obj1 小值表單域
    * @param obj2 大值表單域
    */
    代碼
    1. function?checkIntervalObjs(obj1?,?obj2) ??
    2. {??? ??
    3. ????var?caption1?=?obj1.getAttribute("eos_displayname"); ??
    4. ????var?caption2?=?obj2.getAttribute("eos_displayname"); ??
    5. ????var?val1?=?parseFloat(obj1.value); ??
    6. ????var?val2?=?parseFloat(obj2.value); ??
    7. ????//?非自定義屬性的元素不予理睬 ??
    8. ????if?(obj1.eos_displayname?+?""?==?"undefined"?||?obj2.eos_displayname?+?""?==?"undefined")?{ ??
    9. ????????return?false; ??
    10. ????} ??
    11. ????//?日期類型的比較 ??
    12. ????if(f_check_date(obj1)?==?true?&&?f_check_date(obj2)?==?true){ ??
    13. ????????var?dtype?=?obj1.eos_datatype; ??
    14. ????????var?format?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));??//日期格式 ??
    15. ????????val1?=?getDateByFormat(obj1.value,?format); ??
    16. ????????dtype?=?obj2.eos_datatype; ??
    17. ????????format?=?dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));??//日期格式 ??
    18. ????????val2?=?getDateByFormat(obj2.value,?format); ??
    19. ????????if(val1?>?val2){ ??
    20. ????????obj2.select(); ??
    21. ????????if(isVisible(obj)?&&?checkPrVis(obj)) ??
    22. ????????????obj2.focus(); ??
    23. ????????alert(caption1?+?"的起始日期不能大于其終止日期!"); ??
    24. ????????return?false; ??
    25. ????????} ??
    26. ????} ??
    27. ????//?數字類型的比較 ??
    28. ????if((isNaN(val1)?&&?!isnull(val1))?||?(isNaN(val2)?&&?!isnull(val2))){ ??
    29. ????????alert(caption1?+?"的值不全為數字則不能比較!"); ??
    30. ????????return?false; ??
    31. ????} ??
    32. ????if(val1?>?val2){ ??
    33. ????????obj2.select(); ??
    34. ????????if(isVisible(obj)?&&?checkPrVis(obj)) ??
    35. ????????????obj2.focus(); ??
    36. ????????alert(caption1?+?"的起始值不能大于其終止值!"); ??
    37. ????????return?false; ??
    38. ????} ??
    39. ????return?true; ??
    40. } ??
    41. ???

    /*根據日期格式,將字符串轉換成Date對象。
    格式:yyyy-年,MM-月,dd-日,HH-時,mm-分,ss-秒。
    (格式必須寫全,例如:yy-M-d,是不允許的,否則返回null;格式與實際數據不符也返回null。)
    默認格式:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd。*/

    代碼
    1. function?getDateByFormat(str){ ??
    2. ????var?dateReg,format; ??
    3. ????var?y,M,d,H,m,s,yi,Mi,di,Hi,mi,si; ??
    4. ????if((arguments[1]?+?"")?==?"undefined")?format?=?"yyyy-MM-dd?HH:mm:ss"; ??
    5. ????else?format?=?arguments[1]; ??
    6. ????yi?=?format.indexOf("yyyy"); ??
    7. ????Mi?=?format.indexOf("MM"); ??
    8. ????di?=?format.indexOf("dd"); ??
    9. ????Hi?=?format.indexOf("HH"); ??
    10. ????mi?=?format.indexOf("mm"); ??
    11. ????si?=?format.indexOf("ss"); ??
    12. ????if(yi?==?-1?||?Mi?==?-1?||?di?==?-1)?return?null; ??
    13. ????else{ ??
    14. ????????y?=?parseInt(str.substring(yi,?yi+4)); ??
    15. ????????M?=?parseInt(str.substring(Mi,?Mi+2)); ??
    16. ????????d?=?parseInt(str.substring(di,?di+2)); ??
    17. ????} ??
    18. ????if(isNaN(y)?||?isNaN(M)?||?isNaN(d))?return?null; ??
    19. ????if(Hi?==?-1?||?mi?==?-1?||?si?==?-1)?return?new?Date(y,?M-1,?d); ??
    20. ????else{ ??
    21. ????????H?=?str.substring(Hi,?Hi+4); ??
    22. ????????m?=?str.substring(mi,?mi+2); ??
    23. ????????s?=?str.substring(si,?si+2); ??
    24. ????} ??
    25. ????if(isNaN(parseInt(y))?||?isNaN(parseInt(M))?||?isNaN(parseInt(d)))?return?new?Date(y,?M-1,?d); ??
    26. ????else?return?new?Date(y,?M-1,?d,H,?m,?s); ??
    27. } ??
    28. ???

    /*LTrim(string):去除左邊的空格*/
    代碼
    1. function?LTrim(str){ ??
    2. ????var?whitespace?=?new?String("?\t\n\r"); ??
    3. ????var?s?=?new?String(str);??? ??
    4. ??
    5. ????if?(whitespace.indexOf(s.charAt(0))?!=?-1){ ??
    6. ????????var?j=0,?i?=?s.length; ??
    7. ????????while?(j?<?i?&&?whitespace.indexOf(s.charAt(j))?!=?-1){ ??
    8. ????????????j++; ??
    9. ????????} ??
    10. ????????s?=?s.substring(j,?i); ??
    11. ????} ??
    12. ????return?s; ??
    13. } ??
    14. ???

    /*RTrim(string):去除右邊的空格*/
    代碼
    1. function?RTrim(str){ ??
    2. ????var?whitespace?=?new?String("?\t\n\r"); ??
    3. ????var?s?=?new?String(str); ??
    4. ? ??
    5. ????if?(whitespace.indexOf(s.charAt(s.length-1))?!=?-1){ ??
    6. ????????var?i?=?s.length?-?1; ??
    7. ????????while?(i?>=?0?&&?whitespace.indexOf(s.charAt(i))?!=?-1){ ??
    8. ????????????i--; ??
    9. ????????} ??
    10. ????????s?=?s.substring(0,?i+1); ??
    11. ????} ??
    12. ????return?s; ??
    13. } ??
    14. ???

    /*Trim(string):去除字符串兩邊的空格*/
    代碼
    1. function?Trim(str){ ??
    2. ????return?RTrim(LTrim(str)); ??
    3. }? ??
    4. ???
    posted on 2006-12-22 14:08 OMG 閱讀(317) 評論(0)  編輯  收藏 所屬分類: Data validate

    <2006年12月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    IT風云人物

    文檔

    朋友

    相冊

    經典網站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久亚洲AV无码网站| 国产乱码免费卡1卡二卡3卡| 全黄A免费一级毛片| 丰满亚洲大尺度无码无码专线| 国产91在线|亚洲| 亚洲精品人成网在线播放影院| 亚洲一欧洲中文字幕在线| 亚洲国产品综合人成综合网站| 亚洲视频精品在线观看| 亚洲欧洲在线播放| 亚洲天堂一区在线| 亚洲AV无码一区二区三区人| 国产成人精品亚洲日本在线| 99热亚洲色精品国产88| 亚洲国产aⅴ成人精品无吗| 日韩色日韩视频亚洲网站| 精品特级一级毛片免费观看| aa午夜免费剧场| 中文字幕免费在线看电影大全 | 亚洲一区二区成人| 亚洲黄色高清视频| 亚洲免费中文字幕| 亚洲精品无码国产片| 美女视频黄视大全视频免费的| 一级做性色a爰片久久毛片免费| 中文字幕乱理片免费完整的| 三年片在线观看免费观看大全动漫 | 精品亚洲一区二区三区在线观看| 国产日产亚洲系列| 亚洲国产综合精品中文第一区| 亚洲成人福利在线观看| 亚洲精品GV天堂无码男同| 深夜免费在线视频| 久久久久免费精品国产| 黄色网址免费大全| 国产精品国产自线拍免费软件| 国产福利电影一区二区三区,亚洲国模精品一区 | 精品久久久久久久久免费影院| 啦啦啦www免费视频| 亚洲自偷自偷偷色无码中文| 久久亚洲AV无码精品色午夜|