/**
* 此函数的功能就是document.getElementById(id),用此函数相当于简写
* @param id 页面对象id(字符串类型)
*/
function GetObject(id){
var el = document.getElementById(id);
return(el);
}
/**
* 得到今天日期
*/
function getSysDate()
{
var d=new Date();
var day=d.getDate();
var month=d.getMonth() + 1;
var year=d.getFullYear();
var today=year + "-" + month + "-" + day;
return today;
}
/**
*日期相加减函数:在传入日期srcDate基础上相加或减num天数(num为正数表示加、负数表示减)
*@param srcDate 传入日期
*@param num 天数
*@return 返回目标日期
*/
function getDestDay(srcDate,num)
{
if(!dateCheck(srcDate)) {
alert('传入日期格式不正确');
return;
}
var str = srcDate.replace(/-/g,'/');
var date = new Date(str);
var nextDate = new Date(date.getYear(),date.getMonth(),date.getDate()+(num*1));
var destStr = nextDate.getYear()+'-'+(nextDate.getMonth()+1)+'-'+nextDate.getDate();
return destStr;
}
/**
* 当图片加载出错时,图片不显示
*/
function imgLoadError(){
event.srcElement.style.display='none';
}
/*
* trim、ltrim 或 rtrim已加入String对象的内置方法。
* 使用举例:var str=" abc ";
* str=str.trim();
*/
//删除左右两端的空格
String.prototype.trim=function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//删除左边的空格
String.prototype.ltrim=function(){
return this.replace(/(^\s*)/g,"");
}
//删除右边的空格
String.prototype.rtrim=function(){
return this.replace(/(\s*$)/g,"");
}
/**显示或隐藏指定元素(本为是显示就隐藏,本来是隐藏就显示)
*@param c_Str 元素ID
*/
function showHide(c_Str)
{
if(document.all(c_Str).style.display=='none')
{
document.all(c_Str).style.display='block';
}
else
{
document.all(c_Str).style.display='none';
}
}
/**
* 全选或全不选一个form中的全部复选框
* @param form form对象
* @param flag true全选,false全不选
*/
function selectAll(form,flag)
{
for(i=0;i
maxlimit)
{
field.value = field.value.substring(0, maxlimit);
alert("输入的文字不能超过"+maxlimit+"个字!");
}
}
/**
* 导出数据为Excel,需要设置IE里边的安全属性
* tabname--的名称ID
* 调用onclick="Print2Excel('DataGrid1')"
*/
function Print2Excel(tabname)
{
var exApp = new ActiveXObject("Excel.Application");
var exBook = exApp.Workbooks.Add();
var exSheet = exBook.ActiveSheet;
var tablename = eval(tabname);
for(i = 0; i < tablename.rows.length; i++)
{
for(j = 0; j < tablename.rows[i].cells.length; j++)
{
var cellValue = GetInnerText(tablename.rows[i].cells[j]);
if(cellValue == " ")
{
cellValue = "";
}
exSheet.Cells(i + 1,j + 1).Value = cellValue;
}
}
exApp.Visible = true;
alert("完成");
}
/**
* 获取元素最深子节点的text
*/
function GetInnerText(obj)
{
var text;
if (obj.childNodes.length > 0)
{
text = GetInnerText(obj.childNodes[0]);
}
else
{
text = obj.data;
}
return text;
}
/**
* 按等比例缩略图显示图片
* @param ImgD img对象
* @param width_s 目标宽度
* @param height_s 目标高度
*/
function autoSizeImg(ImgD,width_s,height_s){
var image=new Image();
image.src=ImgD.src;
//图片的尺寸必须比标准尺寸大才做处理
if(image.width>0 && image.height>0 &&(image.width>width_s || image.height>height_s)){
if(image.width/image.height>=width_s/height_s){
//宽尺寸大一些,以宽度为基准
ImgD.width=width_s;
ImgD.height=(image.height*width_s)/image.width;
}else{
//高尺寸大一些,以高度为基准
ImgD.height=height_s;
ImgD.width=(image.width*height_s)/image.height;
}
}
}
//*********************************检查验证的JS函数************************************
/**
* 检查Email格式是否合法
* @param s 要验证的email地址
*/
function emailCheck(s){
var reg1 = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9@._-]{3,}[a-zA-Z]$');
var reg2 = new RegExp('[@.]{2}');
if (s.search(reg1) == -1
|| s.indexOf('@') == -1
|| s.lastIndexOf('.') < s.lastIndexOf('@')
|| s.lastIndexOf('@') != s.indexOf('@')
|| s.search(reg2) != -1)
return false;
return true;
}
/**
* 检查日期格式是否正确
* @param strvalue 日期格式字符串 yyyy-mm-dd; yyyy-m-d;
*/
function dateCheck(strvalue)
{
var value = strvalue;
var pattern=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/;
if(value.length >= 6 && value.length <= 10)
{
var ymd = value;
var strY = "";
var y = 0;
var m = 0;
var d = 0;
if(!pattern.test(value)) return false; //时间格式不对
strY = RegExp.$1;
y = eval(RegExp.$1);
m = eval(RegExp.$2);
d = eval(RegExp.$3);
if((y == 0 || m > 12 || m == 0 || d == 0) ||
((m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) && d > 31) ||
((m==4 || m==6 || m==9 || m==11) && d > 30) ||
(m==2 && y%4==0 && d > 29) || (m==2 && y%4 != 0 && d > 28))
{
return false;
}
if (y>=100 && y<1000)
{
return false;
}
}
else if (value.length > 0)
{
return false;
}
return true;
}
/**
* 检查日期的合理性
* @param sDate 起始日期 yyyy-mm-dd; yyyy-m-d;
* @param eDate 结束日期 yyyy-mm-dd; yyyy-m-d;
* @param isEqual
* true - 起始日期 <= 结束日期
* false - 起始日期 < 结束日期
* @return 如果日期格式不合法,返回false
*/
function chkDateFromTo(sDate, eDate, isEqual){
//日期格式检查
if (dateCheck(sDate) && dateCheck(eDate)){
var strSeparator = "-"; //split symbol
var strDateArrayStart;
var strDateArrayEnd;
strDateArrayStart = sDate.split(strSeparator);
strDateArrayEnd = eDate.split(strSeparator);
var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]);
var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]);
//check date
var intDay;
intDay = (strDateE-strDateS)/(1000*3600*24);
//alert(intDay);
if(isEqual)
{
if(intDay < 0) return false;
return true;
}
else
{
if(intDay <= 0) return false;
return true;
}
}else{
return false;
}
}
/**
* 检查时间的合理性
* @param sTime 起始时间 MM:SS
* @param eTime 结束时间 MM:SS
* @param isEqual
* true - 起始时间 <= 结束时间
* false - 起始时间 < 结束时间
* @return 如果日期格式不合法,返回false
*/
function chkTimeFromTo(sTime,eTime,isEqual) {
var strSeparator = ":"; //split symbol
var strTimeArrayStart;
var strTimeArrayEnd;
strTimeArrayStart = sTime.split(strSeparator);
strTimeArrayEnd = eTime.split(strSeparator);
var sHour = strTimeArrayStart[0]*1;
var sSecond = strTimeArrayStart[1]*1;
var eHour = strTimeArrayEnd[0]*1;
var eSecond = strTimeArrayEnd[1]*1;
if(isEqual) {
if(sHour < eHour) {
return true;
} else if(sHour == eHour) {
if(sSecond <= eSecond) {
return true;
} else{
return false;
}
} else {
return false;
}
} else {
if(sHour < eHour) {
return true;
} else if(sHour == eHour) {
if(sSecond < eSecond) {
return true;
} else{
return false;
}
} else {
return false;
}
}
}
/**
* 检查固定电话
* @param str 固定电话或者灵通号码
*/
function isTel(str)
{
return true ;//固定电话或者灵通号码不作验证,可以随意输入
var patrn=/(^[0-9]{3,4}\-[0-9]{3,9}$)/;
if (!patrn.exec(str))
return false ;
else
return true ;
}
/**
* 允许固定电话、小灵通、手机、含分机的固定电话的任意一种
* 含分机的电话格式:010-12345678-11
*/
function isPhone(s)
{
var tel=trim(s);
var pattern=/^(\d{6,16}|\d{3,4}-\d{6,8}|\d{3,4}-\d{6,8}-\d{1,4}|\d{6,8}-\d{1,4})$/;
if(tel.indexOf(tel.length-1)=="-") return false;
var ss=tel.split("-");
if(ss.length<=2)
{
return pattern.exec(tel);
}
if(ss.length==3)
{
return pattern.exec(ss[0]+"-"+ss[1]) && isData(ss[2]);
}
return false;
}
/**
* 检查手机号/小灵通号,只要是11、12位数字就可以
*/
function isMobile(str){
var patrn=/^\d{11,12}$/;
if (!patrn.exec(str))
return false;
else
return true;
}
/**
* 是否数字
*/
function isNum(s)
{
if (s!="0")
{
var patrn=/(^[0-9]*[1-9][0-9]*$)/;
if (!patrn.exec(s))
return false;
else
return true;
}
return true;
}
/**
* 是否金额
*/
function isMoney(s)
{
if (s=="0.0") return true;
if (s!="0")
{
var patrn=/(^[0-9]*[1-9][0-9]*\.?[0-9]{0,}$)/;
if (!patrn.exec(s))
return false;
else
return true;
}
return true;
}
/**
* 身份证号码验证
*/
function isIdCardNo(num)
{
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray=new Array();
var intValue;
var lngProduct=0;
var intCheckDigit;
var intStrLen=num.length;
var idNumber=num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
//error = "输入身份证号码长度不对!";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;i '9') && (i != 17)) {
//error = "错误的身份证号码!.";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
//error = "身份证中日期信息不正确!.";
//alert(error);
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
//error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
//alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
//alert("身份证日期信息有误!.");
return false;
}
}
//alert ("Correct.");
return true;
}
/**
* 身份证日期部分验证函数
*/
function checkDate(date)
{
return true;
}
/**
* 邮政编码
*/
function isPostCode(s) {
var patrn=/(^[0-9]{6,6}$)/;
if (!patrn.exec(s))
return false
return true;
}
/**
* 验证是否中文
* @return 非中文返回 false
*/
function isChinese(str)
{
str = str.replace(" ", "");
for (i=0;i()\[\]{}\s\x7f-\xff]*(?:[.,?]+[^;"'<>()\[\]{}\s\x7f-\xff]+)*)?/;
return urlPattern.test(url.toLowerCase());
}
/*******************************下拉框操作开始**********************************/
/**
* 为下拉框添加选项
* @param obj 下拉框对象
* @param val 选项值
* @param text 选项文字
*/
function appendItem(obj,val,text)
{
var elOptNew = document.createElement('option');
elOptNew.text = text;
elOptNew.value = val;
try {
obj.add(elOptNew, null); // standards compliant; doesn't work in IE
}
catch(ex) {
obj.add(elOptNew); // IE only
}
}
/**
* 移除下拉框的最后一个选项
* @param obj 下拉框对象
*/
function removeLastItem(obj)
{
if (obj.length > 0)
{
obj.remove(obj.length - 1);
}
}
/**
* 移除下拉框的选中的选项
* @param obj 下拉框对象
*/
function removeSelItem(obj)
{
var i;
for (i = obj.length - 1; i>=0; i--) {
if (obj.options[i].selected) {
obj.remove(i);
}
}
}
/**
* 清除下拉框的选中的选项
*/
function clearItem(obj)
{
while (obj.length>0)
{
removeLastItem(obj);
}
}
/**
* 选中下拉列表框value为指定值的option
*/
function optionSelect(objSel,strValue) {
var isSelected=false;
if(objSel.options) {
for(var oi=0;oi0&&event.srcElement.value.length>=letterCount) {
// 超过长度,不能输入
event.returnValue=false;
}
if(65<=event.keyCode&&event.keyCode<=90) {
// 大写字母保持不变
}
else if(97<=event.keyCode&&event.keyCode<=122) {
// 小写字母换成大写字母
//event.keyCode=(String.fromCharCode(event.keyCode).toUpperCase()).charCodeAt(0);
event.keyCode=event.keyCode-32
}
else {
// 不是字母,不能输入
event.returnValue=false;
}
}
/**
* onkeypress调用
* 限制文本框只能输入不超过指定个数的数字,如果letterCount<=0没有个数限制
*/
function inputNumOnly(letterCount) {
if(letterCount>0&&event.srcElement.value.length>=letterCount) {
// 超过长度,不能输入
event.returnValue=false;
}
else if(48<=event.keyCode&&event.keyCode<=57) {
// 数字,可以输入
}
else {
// 不是数字,不能输入
event.returnValue=false;
}
}
/**
*身份证验证
*@param idcard
* 身份证号
*@return 返回验证结果
* 0 身份证正确
* 1 身份证的位数不正确(非15、18)
* 2 身份证号码出生日期超出范围或含有非法字符
* 3 身份证的校验位不正确
* 4 身份证地区非法
*/
function checkIdcard(idcard){
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if(area[parseInt(idcard.substr(0,2))]==null) {
return 4;
}
//身份号码位数及格式检验
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(ereg.test(idcard)) {
return 0;
} else {
return 2;
}
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(ereg.test(idcard)){//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判断校验位
if(M == idcard_array[17]) return 0; //检测ID的校验位
else return 3;
}
else
return 2;
break;
default:
return 1;
break;
}
}
/**
* 检查输入的姓名是否中文
*/
function ck_name(value_) {
if(/[^\u4E00-\u9FA5]/gi.test(value_)){
if (/[\u4E00-\u9FA5]/gi.test(value_.substring(0,1)) && value_.indexOf("/")<=0 ) {
return true;
}
if (value_.indexOf("/")>=0 && (/[^\u4E00-\u9FA5]/gi.test(value_.substring(0,value_.indexOf("/")))) && (/[^\u4E00-\u9FA5]/gi.test(value_.substring((value_.indexOf("/") + 1),value_.length))) ) {
return true;
}
return false;
}else{
return true;
}
}
/**
* 解析日期字符串到日期对象
*/
function parseDate(s) {
var reg=new RegExp("[^0-9-]","")
if(s.search(reg)>=0)return today;
var ss=s.split("-");
if(ss.length!=3)return today;
if(isNaN(ss[0])||isNaN(ss[1])||isNaN(ss[2]))return today;
return new Date(parseInt(ss[0]),parseInt(ss[1]*1)-1,parseInt(ss[2]*1));
}
/**
* 写入名称为cookieName,带失效日期的 cookie
* var nowDate=new Date("");
* var expireDate=??;
* ResponseCookies("cookieName","cookieValue",expireDate);
* 读取名称为cookieName的 cookie
* RequestCookies("cookieName","defaultValue");
*/
/**
* 写入 cookie
* 不区分 cookieName 的大小写
* 不考虑子键
*/
function ResponseCookies(cookieName, cookieValue, expires) {
if(expires) {
// 指定了 expires
document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue) + "; expires=" + expires.toGMTString();
}
else {
document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue);
}
}
/**
* 获取并返回与 cookieName 同名的 cookie 名称,允许大小写不同
* 如果不存在这样的 cookie,就返回 cookieName
*/
function ResponseCookies_GetCookieName(cookieName) {
var lowerCookieName = cookieName.toLowerCase();
var cookieStr = document.cookie;
if (cookieStr == "") {
return cookieName;
}
var cookieArr = cookieStr.split("; ");
var pos = -1;
for (var i=0; i 0) {
if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)
{
return cookieArr[i].substring(0, pos);
}
}
}
return cookieName;
}
/**
* 获取并返回 cookie 值
* 不区分 cookieName 的大小写
* dfltValue 为默认返回值
* 不考虑子键
*/
function RequestCookies(cookieName, dfltValue) {
var lowerCookieName = cookieName.toLowerCase();
var cookieStr = document.cookie;
if (cookieStr == "") {
return dfltValue;
}
var cookieArr = cookieStr.split("; ");
var pos = -1;
for (var i=0; i 0) {
if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName) {
return unescape(cookieArr[i].substring(pos+1, cookieArr[i].length));
}
}
}
return dfltValue;
}