//是否是數字格式的字符串
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, "");
}
一些經常用的JS表單驗證
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.