//是否是数字格式的字符串
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, "");
}