JavaScript:表单常用验证脚本(整理)

时间:2023-12-16 21:00:14

以下内容根据网上资源整理而来,主要来源是CSDN一个供下载的check.js,源码地址找不到了。

1. 检查输入字符串是否为空或者全部都是空格

/*
检查输入字符串是否为空或者全部都是空格
输入:str 输入的字符串
返回:如果全是空返回true;否则返回false
*/
function isNull(str) {
if (str == "") return true; var regexp = "^[ ]+$";
var regObj = new RegExp(regexp);
return regObj.test(str);
}

2. 检查输入对象的值是否符合Email格式

/*
检查输入对象的值是否符合Email格式;如:zhangshan@sina.com
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function checkEmail(str) {
// var regexp = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
var regexp = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.(?:com|cn)$/;
return regexp.test(str);
}

3. 检查输入手机号码是否正确

/*
检查输入手机号码是否正确;如:13857392812
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function checkMobile(str) {
var regexp =/^[1][3][0-9]{9}$/;
return regexp.test(str);
}

4. 检查输入的电话号码格式是否正确,允许包括区号

/*
检查输入的电话号码格式是否正确,允许包括区号;如:80827182、010-89187876
输入:strPhone 电话号码格式字符串
返回:如果通过验证返回true;否则返回false
*/
function checkPhone(strPhone) {
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
if(strPhone.length > 8) {
return phoneRegWithArea.test(strPhone);
}else{
return phoneRegNoArea.test(strPhone);
}
}

5. 校验ip地址的格式

/*
校验ip地址的格式;如:12.32.12.123
输入:strIP ip地址格式字符串
返回:如果通过验证返回true,否则返回false;
*/
function isIP(strIP) {
if(isNull(strIP)) return false; var regexp=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g;
if(regexp.test(strIP)) {
if(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
}
return false;
}

6. 检查输入对象的值是否符合整数格式

/*
检查输入对象的值是否符合整数格式;如:123、-324
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isInteger(str) {
var regexp = /^[-]{0,1}[0-9]{1,}$/;
return regexp.test(str);
}

7. 检查输入字符串是否符合正整数格式

/*
检查输入字符串是否符合正整数格式;如:123、567
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isPositiveInteger(str) {
var regexp = "^[0-9]+$";
var regObj = new RegExp(regexp);
if (str.search(regObj) != -1) {
return true;
} else {
return false;
}
}

8. 检查输入字符串是否是带小数的数字格式,可以是负数

/*
检查输入字符串是否是带小数的数字格式,可以是负数;如:123.3456、-454.212344
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isDecimal(str) {
if(isInteger(str)) return true;
var regexp = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
if (regexp.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}

9. 检查输入字符串是否符合金额格式,不可以是负数

/*
检查输入字符串是否符合金额格式,不可以是负数;如:123.45、456.233
格式定义为带小数的正数,小数点后最多三位
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isMoney(str) {
var regexp = "^[0-9]+[\.][0-9]{0,3}$";
var regObj = new RegExp(regexp);
if (regObj.test(str)) {
return true;
} else {
return false;
}
}

10. 检查输入字符串是否只由英文字母、数字和下划线组成

/*
检查输入字符串是否只由英文字母、数字和下划线组成;如:abc123_
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isLetterNumAnd_(str) {
var regexp = "^[0-9a-zA-Z\_]+$";
var regObj = new RegExp(regexp);
if (regObj.test(str)) {
return true;
}else{
return false;
}
}

11. 判断是否是日期

/*
判断是否是日期
输入:date 日期;
返回:如果通过验证返回true,否则返回false
*/
function isDate(date) {
return isDate(date, "yyyy-MM-dd");
} /*
判断是否是日期
输入:date 日期;fmt 日期格式
返回:如果通过验证返回true,否则返回false
*/
function isDate(date, fmt) {
if (fmt == null) fmt = "yyyy-MM-dd";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
var year = date.substring(yIndex, yIndex+4); var mIndex = fmt.indexOf("MM");
if(mIndex == -1) return false;
var month = date.substring(mIndex, mIndex+2); var dIndex = fmt.indexOf("dd");
if(dIndex==-1) return false;
var day = date.substring(dIndex, dIndex+2); if(!isPositiveInteger(year)||year>"2100" || year<"1900") return false;
if(!isPositiveInteger(month)||month>"12" || month<"01") return false;
if(day>getMaxDay(year,month) || day<"01") return false; return true;
}

12. 取得给定年、月的天数

/*
取得给定年、月的天数
输入:
year: 年
month:月
返回:该月天数
*/
function getMaxDay(year, month) {
if(month==4 || month==6 || month==9 || month==11)
return "30";
if(month==2)
if(year%4==0&&year%100!=0 || year%400==0)
return "29";
else
return "28"; return "31";
}

13. 检查复选框被选中的数目

/*
检查复选框被选中的数目
输入:checkboxID 字符串
返回:返回该复选框中被选中的数目
*/
function checkSelect(checkboxID) {
var checkedCounter = 0;
var i = 0;
if(document.all(checkboxID).length > 0) {
for(i=0; i<document.all(checkboxID).length; i++) {
if(document.all(checkboxID).item(i).checked ) {
checkedCounter += 1;
}
}
}else{
if(document.all(checkboxID).checked)
checkedCounter = 1;
}
return checkedCounter;
}

14. 字符串去空格的函数

/*
字符串去空格的函数
输入:
sInputString: 需要去空格的字符串
iType:1=去掉字符串左边的空格、2=去掉字符串右边的空格、0=去掉字符串左边和右边的空格
返回:去掉空格的字符串
*/
function cTrim(sInputString, iType) {
var sTmpStr = ' ';
var i = -1;
if(iType == 0 || iType == 1) {
while(sTmpStr == ' ') {
++i;
sTmpStr = sInputString.substr(i,1);
}
sInputString = sInputString.substring(i);
} if(iType == 0 || iType == 2){
sTmpStr = ' ';
i = sInputString.length;
while(sTmpStr == ' ') {
--i;
sTmpStr = sInputString.substr(i,1);
}
sInputString = sInputString.substring(0,i+1);
}
return sInputString;
}

15. 完整代码

/*
检查输入字符串是否为空或者全部都是空格
输入:str 输入的字符串
返回:如果全是空返回true;否则返回false
*/
function isNull(str) {
if (str == "") return true; var regexp = "^[ ]+$";
var regObj = new RegExp(regexp);
return regObj.test(str);
} /*
检查输入对象的值是否符合Email格式;如:zhangshan@sina.com
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function checkEmail(str) {
// var regexp = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
var regexp = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.(?:com|cn)$/;
return regexp.test(str);
} /*
检查输入手机号码是否正确;如:13857392812
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function checkMobile(str) {
var regexp =/^[1][3][0-9]{9}$/;
return regexp.test(str);
} /*
检查输入的电话号码格式是否正确,允许包括区号;如:80827182、010-89187876
输入:strPhone 电话号码格式字符串
返回:如果通过验证返回true;否则返回false
*/
function checkPhone(strPhone) {
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
if(strPhone.length > 8) {
return phoneRegWithArea.test(strPhone);
}else{
return phoneRegNoArea.test(strPhone);
}
} /*
校验ip地址的格式;如:12.32.12.123
输入:strIP ip地址格式字符串
返回:如果通过验证返回true,否则返回false;
*/
function isIP(strIP) {
if(isNull(strIP)) return false; var regexp=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g;
if(regexp.test(strIP)) {
if(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
}
return false;
} /*
检查输入对象的值是否符合整数格式;如:123、-324
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isInteger(str) {
var regexp = /^[-]{0,1}[0-9]{1,}$/;
return regexp.test(str);
} /*
检查输入字符串是否符合正整数格式;如:123、567
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isPositiveInteger(str) {
var regexp = "^[0-9]+$";
var regObj = new RegExp(regexp);
if (str.search(regObj) != -1) {
return true;
} else {
return false;
}
} /*
检查输入字符串是否是带小数的数字格式,可以是负数;如:123.3456、-454.212344
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isDecimal(str) {
if(isInteger(str)) return true;
var regexp = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
if (regexp.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
} /*
检查输入字符串是否符合金额格式,不可以是负数;如:123.45、456.233
格式定义为带小数的正数,小数点后最多三位
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isMoney(str) {
var regexp = "^[0-9]+[\.][0-9]{0,3}$";
var regObj = new RegExp(regexp);
if (regObj.test(str)) {
return true;
} else {
return false;
}
} /*
检查输入字符串是否只由英文字母、数字和下划线组成;如:abc123_
输入:str 输入的字符串
返回:如果通过验证返回true;否则返回false
*/
function isLetterNumAnd_(str) {
var regexp = "^[0-9a-zA-Z\_]+$";
var regObj = new RegExp(regexp);
if (regObj.test(str)) {
return true;
}else{
return false;
}
} /*
判断是否是日期
输入:date 日期;
返回:如果通过验证返回true,否则返回false
*/
function isDate(date) {
return isDate(date, "yyyy-MM-dd");
} /*
判断是否是日期
输入:date 日期;fmt 日期格式
返回:如果通过验证返回true,否则返回false
*/
function isDate(date, fmt) {
if (fmt == null) fmt = "yyyy-MM-dd";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
var year = date.substring(yIndex, yIndex+4); var mIndex = fmt.indexOf("MM");
if(mIndex == -1) return false;
var month = date.substring(mIndex, mIndex+2); var dIndex = fmt.indexOf("dd");
if(dIndex==-1) return false;
var day = date.substring(dIndex, dIndex+2); if(!isPositiveInteger(year)||year>"2100" || year<"1900") return false;
if(!isPositiveInteger(month)||month>"12" || month<"01") return false;
if(day>getMaxDay(year,month) || day<"01") return false; return true;
} /*
取得给定年、月的天数
输入:
year: 年
month:月
返回:该月天数
*/
function getMaxDay(year, month) {
if(month==4 || month==6 || month==9 || month==11)
return "30";
if(month==2)
if(year%4==0&&year%100!=0 || year%400==0)
return "29";
else
return "28"; return "31";
} /*
检查复选框被选中的数目
输入:checkboxID 字符串
返回:返回该复选框中被选中的数目
*/
function checkSelect(checkboxID) {
var checkedCounter = 0;
var i = 0;
if(document.all(checkboxID).length > 0) {
for(i=0; i<document.all(checkboxID).length; i++) {
if(document.all(checkboxID).item(i).checked ) {
checkedCounter += 1;
}
}
}else{
if(document.all(checkboxID).checked)
checkedCounter = 1;
}
return checkedCounter;
} /*
字符串去空格的函数
输入:
sInputString: 需要去空格的字符串
iType:1=去掉字符串左边的空格、2=去掉字符串右边的空格、0=去掉字符串左边和右边的空格
返回:去掉空格的字符串
*/
function cTrim(sInputString, iType) {
var sTmpStr = ' ';
var i = -1;
if(iType == 0 || iType == 1) {
while(sTmpStr == ' ') {
++i;
sTmpStr = sInputString.substr(i,1);
}
sInputString = sInputString.substring(i);
} if(iType == 0 || iType == 2){
sTmpStr = ' ';
i = sInputString.length;
while(sTmpStr == ' ') {
--i;
sTmpStr = sInputString.substr(i,1);
}
sInputString = sInputString.substring(0,i+1);
}
return sInputString;
}