分享

表单校验 check.js

 pablo3518 2007-08-07
表单校验 check.js

var fmtDate = /^(\d{1,4})-(\d{1,2})-(\d{1,2})\b/;    // 日期
//var fmtEmail = /^[\w-\.]+@[\w-]+\.[\w-]+$/;            // Email
var fmtEmail = /^[\w-\.]+@[\w-]+(\.[\w-]+)+$/;             // Email
var fmtMobilePhone = /^13\d{9}$/;                    // 移动电话
var fmtTelephone = /^(0\d{2,3}-?)?\d{7,8}$/;        // 国内固定电话
var fmtZip = /^[1-9]\d{5}$/;                        // 邮政编码
var fmtTrim = /^[\s ]*([\S]*)[\s ]*$/;                // trim
var fmtTime = /^(\d{1,2})\:(\d{1,2})$/;
var fmtQuote = /\‘/g;

/** 仅能判断字符串去除空格后是否为空,因为字符串中间有空格或者其他字符时返回整个字符串 */
String.prototype.trim = function (){
    return this.replace(fmtTrim, ‘
$1‘);
}

/** 将 ‘
替换成 ‘‘ ,SQL 语句用 --还没有用上 */
String.prototype.quote = function (){
    return this.replace(fmtQuote, ‘\‘\‘‘);
}

/** 字节长度 */
String.prototype.byteLen = function (){
    var count = 0, idx = 0;
    while (idx < this.length) count += this.charCodeAt(idx++) > 0xFF ? 2 : 1;
    return count;
}

/** 返回日期的毫秒数(符合fmtDate描述的日期) 日期格式yyyy-mm-dd */
function parseDate(date){
    return Date.parse(date.replace(fmtDate, ‘$2/$3/$1‘));
}

/** 比较日期 */
function compareDate(date1, date2){
    return parseDate(date1) - parseDate(date2);
}

/** 是否日期(严格判断用isValidDate()) */
function isDate(date){
    return fmtDate.test(date);
}

/** 是否时间 hh:mm */
function isTime(strTime){
    return fmtTime.test(strTime) && RegExp.$1 < 60 && RegExp.$2 < 60;
}

/** 是否Email */
function isEmail(email){
    return fmtEmail.test(email);
}

/** 是否手机号码(13xxxxxxxxx) */
function isMobilePhone(mobilePhone){
    return fmtMobilePhone.test(mobilePhone);
}

/** 是否固定电话 */
function isTelephone(telephone){
    return fmtTelephone.test(telephone);
}

/** 固定电话或者移动电话 */
function isTel(tel){
    return isMobilePhone(tel) || isTelephone(tel);
}

/** 邮政编码 */
function isZip(zip){
    return fmtZip.test(zip);
}

/** 数字域,但允许为空 */
function numField(field){
    with (field){
        if (value.trim() != ‘‘ && isNaN(value)){
            alert(‘请输入数字!‘); focus(); select(); return false;
        } else return true;
    }
}

/** 电话域 */
function telField(field){
    with (field){
        if (value.trim() != ‘‘ && !isTel(value)){
            alert(‘请输入有效电话号码!‘); focus(); select(); return false;
        } else return true;
    }
}

/** 邮政编码域 */
function zipField(field){
    with (field){
        if (value.trim() != ‘‘ && !isZip(value)){
            alert(‘请输入有效邮政编码!‘); focus(); select(); return false;
        } else return true;
    }
}

/** Email 域 */
function emailField(field){
    with (field){
        if (value.trim() != ‘‘ && !isEmail(value)){
            alert(‘请输入有效Email!‘); focus(); select(); return false;
    &;#160;   } else return true;
    }
}

/** Date 域 */
function dateField(field){
    with (field){
        if (value.trim() != ‘‘ && !isValidDate(value)){
            alert(‘请输入有效日期!‘); focus(); select(); return false;
        } else return true;
    }
}

/** Time 域 (hh:mm) */
function timeField(field){
    with (field){
        if (value.trim() != ‘‘ && !isTime(value)){
            alert(‘请输入有效时间(hh:mm)!‘); focus(); select(); return false;
        } else return true;
    }
}

/** 用于去除月份、日前导的0,否则 parseInt() 认为是8进数值,出错 */
function trimZero(bin){
    var idx = 0;
    while (bin.charCodeAt(idx) == 48) idx++; //48 == ‘0‘.charCode();


    return bin.substring(idx);
}

/** 是否润年 */
function isLeapYear(iYear){
    if (iYear % 4 == 0){
        if (iYear % 100 == 0 && iYear % 400 != 0) return false;
        else return true;
    } else return false;
}

/** 是否合法日期 */
function isValidDate2(iYear, iMonth, iDay){

    switch (iMonth){
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        if (iDay < 32) return true;
    case 4: case 6: case 9: case 11:
        if (iDay < 31) return true;
    case 2:
        if (isLeapYear(iYear) && iDay < 30) return true;
        else if (iDay < 29) return true;
    default: return false;
    }
}

/** 是否合法日期 */
function isValidDate(sDate){
    if (fmtDate.exec(sDate) == null) return false;

    with (RegExp){
        return isValidDate2(parseInt(trimZero($1)), parseInt(trimZero($2)), parseInt(trimZero($3)));
    }
}

/** 当前月 */
function isCurrentMonth(sDate){
    var date = new Date();
    var aMonth = date.getMonth() + 1;
    var aYear = date.getFullYear();

    date.setTime(parseDate(sDate));
    var bMonth = date.getMonth() + 1;
    var bYear = date.getYear();

    return aMonth == bMonth && aYear == bYear;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多