一些经常用的JS表单验证

//是否是数字格式的字符串
function isDigit(str)
{
    return /^/d+$/.test(str);
}
//是否是只有26个大小写英文字符的字符串
function isAlpha(str)
{
    return /^[a-zA-Z]+$/.test(str);
}

//是否只含有大写英文字符
function isUpper(str)
{
    return /^[A-Z]+$/.test(str);
}

//是否只含有小写英文字符
function isLower(str)
{
    return /^[a-z]+$/.test(str);
}

//是否只含有26个大小写英文字符和数字字符的字符串
function isAlnum(str)
{
    return /^[a-zA-Z/d]+$/.test(str);
}

//是否是可用于注册登录名的字符(26个大小写英文字符、数字、下划线、横线)
function isLoginName(str)
{
    return /^[a-zA-Z/d_/-]+$/.test(str);
}

//是否是可用于注册密码的字符(26个大小写英文字符、数字、下划线、横线)
function isPassword(str)
{
    return /^[a-zA-Z/d_/-]+$/.test(str);
}

//是否是整数
function isInt(str)
{
    return /^[+-]?/d+$/.test(str);
}

//是否是浮点数
function isFloat(str)
{
   return /^[+-]?(0/./d+|0|[1-9]/d*(/./d+)?)$/.test(str);
}

//是否是邮件地址格式
function isEmail(str)
{
    return /^([/w/-/.])+@([/w-])+(/.([a-zA-Z0-9]){2,3}){1,2}$/.test(str);
    ///^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$/;
}

//是否是手机号码格式
function isHandsetNumber(str)
{
  return /^/d{11}$/.test(str);
}

//是否是身份证号码格式
function isID(str)
{
  return /^[a-zA-Z/d]{15,18}$/.test(str);
}

//是否闰年
function isLeapYear(str)
{
    if (isNaN(str)) return false;
    var year = parseInt(str, 10);
    return ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0))
}

//验证身份证号码格式
function checkId(value){
   if(value.length > 18 || value.length < 15){
      return false;
   }
   if(!isAlnum(value)){
     return false;
   }
   return true;
}
//是否是日期格式(YYYY-MM-DD)
function isDate(str)
{
    if (str.length == 10)
    {
        var dateRegExpStr = "//d{4}-(((01|03|05|07|08|10|12)-(0[1-9]|[12]//d|3[01]))|((04|06|09|11)-(0[1-9]|[12]//d|30))|(02-";
        dateRegExpStr += isLeapYear(str.substring(0, 4)) ? "(0[1-9]|[12]//d)" : "(0[1-9]|1//d|2[0-8])";
        dateRegExpStr += "))";

        var dateRegExp = new RegExp(dateRegExpStr);

        return dateRegExp.test(str);
    }
    return false;
}

//是否是日期格式(YYYY-MM)
function isYearMonth(str)
{
    return /^/d{4}-(0[1-9]|1[0-2])$/.test(str);
}

//是否是时间格式(hh:mm:ss)
function isTime(str)
{
    return /^([01]/d|2[0-3]):[0-5]/d:[0-5]/d$/.test(str);
}

//是否是日期时间格式(YYYY-MM-DD hh:mm:ss)
function isDateTime(str)
{
    return (str.length == 19) ? (isDate(str.substring(0, 10)) && isTime(str.substring(11, 19))) : false;
}

//获得某年的某个月有多少天 或者说 某年某月的最后一天是多少。
function getDays(year, month)
{
    switch (parseInt(month, 10))
    {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
        case 4: case 6: case 9: case 11: return 30;
        case 2: return isLeapYear(year) ? 29 : 28;
    }
}

//计算两个日期相差天数(sDate1 - sDate2),sDate1和sDate2是"yyyy-mm-dd"格式
function dateDiff(sDate1, sDate2)
{
    var aDate, oDate1, oDate2, iDays
    aDate = sDate1.split("-")
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])  //转换为12-18-2002格式
    aDate = sDate2.split("-")
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
    iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 /24)  //把相差的毫秒数转换为天数
    return iDays
}

//是否是IP地址格式(用点"."分割的四组数字中,第一组数字范围1-223,其他三组数字范围0-255)
function isIP(str)
{
    return /^(0?0?[1-9]|0?[1-9]/d|1/d/d|2[01]/d|22[0-3])(/.([01]?/d?/d|2[0-4]/d|25[0-5])){3}$/.test(str);
}

//对于IP地址中的每组数字如果不足3位,则前面补零。例如:"192.168.1.22",结果"192.168.001.022"
function getFullIP(ip)
{
    var nums = ip.split(".");
    var fullIP = "";
    fullIP += repeatString("0", 3 - nums[0].length) + nums[0];
    for (var i = 1; i < nums.length; i++)
        fullIP += "." + repeatString("0", 3 - nums[i].length) + nums[i];
    return fullIP;
}

//验证是否是MAC地址(用英文冒号":"分割的6组两位字符,其中字符只能是英文字符或数字,例如:00:03:0D:61:62:7C)
function isMAC(mac)
{
    return /^[/dA-Za-z]{2}(/:[/dA-Za-z]{2}){5}$/.test(mac);
}

/*
获得repeat个字符串str的连接结果
@param str 要重复的字符串
@param repeat 重复的次数
*/
function repeatString(str, repeat)
{
    var repeatStr = "";
    for (var i = 0; i < repeat; i++)
        repeatStr += str;
    return repeatStr;
}

//是否包含非法字符,针对文件名。(/、/、|、"、?、*、:、<、>)
function containInvalidChar(str)
{   
    return /['/n]/.test(str);
}


//获得字符串对象的字节数
function bytes(str)
{
    return str.replace(/[^/x00-/xff]/g,"***").length;
}

//去除字符串两边的空格
String.prototype.trim = function()
{
    return this.replace(/(^/s*)|(/s*$)/g, "");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值