Js在业务软件中的方法大全

Js在业务软件中的方法大全,转载备用。

 

 

1
一 js大全...............................................................................................................3
1.1 全是数字..................................................................................................3
1.2 限制 期限 不能大于 100 年....................................................................4
1.3 将日期格式由yyyy-MM-dd,转换为yyyymmdd,以直接比较两个日 期的大小........................................................................................................4
1.4 判断字符串是否全部由数字组成..........................................................5
1.5 判断字符串是否全部由字母组成..........................................................6
1.6 对于月和日,如果前面有零,去除,如 01 变为 1.............................6
1.7 为 1 位的日月在前面补零,如将 1 变为 01 .........................................7
1.8 在删除按钮的onclick事件触发..............................................................8
1.9 对输入控件的内容进行非空检验,如果为空,弹出提示信息........10
1.10 检验控件值是否是固定位数的有效数字..........................................11
1.11 所输内容应为字母..............................................................................12
1.12 过滤掉"'"、"%"、"&"、"/"、"" .........................................................13
1.13 删除字符串两侧的空格......................................................................14
1.14 取字符串长度(不包含两端的空格) ...................................................14
1.15 清空查询条件......................................................................................16
1.16 价格输入是否合法(99,999.00)......................................................17
1.17 检验货票号为 1 位字母+6 位数字.....................................................17
1.18 检验起始货票号必须小于截至货票号..............................................18
1.19 检验查询条件是否为空,为空则提示"查询条件不能为空!" ......19
1.20 检验是不是最短位数的数字,用于模糊查询.....................................20
1.21 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 20
1.22 电话号码校验(只能为横线—、()、或数字) ...............................21
1.23 检测输入是否为正整数数字,如果结果为非给出相应提示..........22
1.24 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语23
1.25 检查EMail格式....................................................................................23
1.26 电话号码由数字和-组成..................................................................24
1.26 检验输入的日期yyyy-MM-dd............................................................27
1.27 去掉界面上开头的空格,过滤掉"'" 和"""...........................................33
1.29 去掉汉字间空格..................................................................................35
1.30 大小写转换..........................................................................................36
1.31 过滤掉"'"和""".....................................................................................36
1.32 清空查询条件......................................................................................37
1.33 过滤掉"'"和"""和空格.........................................................................37
1.34 操作员代码为 7 位数字,密码最少为 4 位 .........................................38
1.35 身份证为 15 或 18 位数字或字母 ......................................................38
1.36 检验输入的时间段,日期格式yyyy-MM-dd.......................................39
1.37 检验输入的时间段,日期格式yyyy-MM-dd.......................................41
1.39 检查EMail格式是否正确....................................................................47
1.40 电话号码校验(只能为下划线—、()、或数字) ...........................49
1.41 所输内容应为字母..............................................................................50
1.41 所输内容不能非空..............................................................................50
1.42 价格输入是否合法(99,999.00)......................................................51
2
1.43 价格输入是否合法(99,999.00)......................................................52
1.44 判断文本内容是否少于 2 个汉字/字符(js中汉字和字符占位一 样)..............................................................................................................53
1.45 检测输入是否只有字母或数字..........................................................53
1.46 检测输入是否只有数字或不详,且输入数值不能过大(不能超过
32767)........................................................................................................54
1.47 检测输入是否为数字..........................................................................55
1.48 监测输入是否为数字,且所输入数值不能过大(不能超过 5 位
32767)........................................................................................................56
1.49 检测输入是否为整形数字,且所输数值不能过大(不能超过 10 位
2147483647)..............................................................................................57
1.52 输入为Decimal格式的数,且小数点前后都不能超过规定的位数
/************************************ ............................................59
1.53 可以为负数的数字,数值不能超过 5 位 32767...............................60
1.54 险情报告编号为四位年份加三位数字..............................................61
1.55 检验度数控制值是否是数字,并且小于或等于 180;
/************************************ ............................................62
1.56 删除字符串两侧的空格,返回的是删除两侧空格的字符串.............63
1.57 打开模式窗口,窗口居中..................................................................65
1.59 检验输入的时间段,日期格式yyyy-MM-dd.......................................67
1.60 检验输入的日期yyyy-MM-dd............................................................69
1.61 用下拉框显示月、日,日下拉框根据年月确定..............................73
1.62 检验租赁合同号为 4 位年份+2 位月份+本月合同的顺序号 2 位...75
1.63 用于多行校验,校验每一行,每一列值是否为空,传入的必须是
......................................................................................................................76
1.64 检查某列得多值中是否存在重复值..................................................79
1.65 检查某列得多值与某一值得比较是否相同,例如多个到站路局与 一个发站路局是否相同..............................................................................80
1.66 检查两多值列是否相同,例如同一行的装车路局是否与卸车站所
属路局是否相同..........................................................................................80
1.67 检查箱数与组数..................................................................................81
1.68 检查箱数与组数..................................................................................82
1.69 检查箱数与组数..................................................................................84
1.70 检查单列多值不能超过一定得长度..................................................85
1.71 取字符串长度(不包含两端的空格 ....................................................86
1.72 向表格中添加一行..............................................................................86
1.73 将添加的输入框元素和Validator进行绑定。...................................89
1.74 根据<common:text>标签展示的<input validator="decimal(16,2+)">
的validator属性获取校验器类名(DecimalValidator)...........................91
1.75 删除一行..............................................................................................92
1.76 根据箱型,校验箱数与组数的值是否符合规定..............................93
1.77 删除字符串两侧的空格......................................................................95
1.78 检验单个集装箱箱号为 4 位字母+7 位数字.....................................95
1.79 检验多个集装箱箱号为 4 位字母+7 位数字.....................................97
3
1.80 检验单个集装箱箱号为'TBJU'+7 位数字用于租赁部分的箱号校验
....................................................................................................................101
1.86 判断字符串是否全部由字母组成....................................................105
1.88 为 1 位的日月在前面补零,如将 1 变为 01 ...................................107
1.90 检查EMail格式..................................................................................107
1.91 对输入控件的内容进行非空检验,如果为空,弹出提示信息....109
1.92 检验控件值是否是固定位数的有效数字........................................110
1.93 所输内容应为字母............................................................................111
1.94 过滤掉"'"、"%"、"&"、"/"、"" .......................................................112
1.95 取字符串长度(不包含两端的空格) .................................................113
1.96 将金额转化成按千分位的显示格式................................................114
1.97 清空查询条件....................................................................................115
1.98 价格输入是否合法(99,999.00)....................................................115
1.99 检验货票号为 1 位字母+6 位数字...................................................116
2.00 检验起始货票号必须小于截至货票号............................................117
2.01 检验查询条件是否为空,为空则提示"查询条件不能为空!" ....118
2.02 检验是不是最短位数的数字,用于模糊查询...................................118
2.03 输入为Decimal格式的数,且小数点前后都不能超过规定的位数
....................................................................................................................119
2.04 电话号码校验(只能为横线?、()、或数字) ...............................120
2.05(1)电话号码由数字和-组成............................................................ 120 (2)电话号码为 7 到 13 位 ......................................................................... 120 (3)13 开头的头的手机号码必须为 11 位 ................................................120
2.06 检测输入是否为正整数数字,如果结果为非给出相应提示........121
2.07 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语句 前执行该方法............................................................................................121
2.08 检查EMail格式..................................................................................122
2.09 电话号码由数字和-组成................................................................123
2.10 检验IP地址 ........................................................................................124
2.11 校验忽略样式内容后文本域中的内容是否为空//校验忽略样式内容 后文本域中的内容是否为空....................................................................124
2.12 计算天数差的函数............................................................................125
2.13 把结束日期月份加上月末日期........................................................125
2.14 检验输入的日期yyyy-MM...............................................................126
Js 大全
一 校验 js
1.1 全是数字
function isNumber(nStr){
4
var re=//D/g; //非数字的正则表达式
return !re.test(nStr);
}
//操作员口令校验,3-12 位数字或字母
function isPassword(nStr){
return ((nStr.length>=3) && (nStr.length<=12));
}
//操作员编号校验,7 位数字
function isOperId(sId){
return (isNumber(sId) && (sId.length==7));
}
1.2 限制 期限 不能大于 100 年
/**
*功能: 限制 期限 不能大于 100 年
*@param period 期限
*@param flag 期限单位
*@return true 通过检查; false 未通过检查
*/
function checkDatePeriod(period,flag){
var ret=true;
if(flag=="0"){
if(period>100)
ret= false;
}
else if(flag=="1"){
if(period >100 * 12)
ret= false;
}
else if(flag=="2"){
if(period >100 * 12 * 365)
ret= false;
}
return ret;
}
1.3 将日期格式由 yyyy-MM-dd,转换为 yyyymmdd,以直接比较两个日期的大

/************************************************
function: dateFormat
5
purpose: 将日期格式由 yyyy-MM-dd,转换为 yyyymmdd,以直接比较两个 日期的大小
parameters : 需要进行转换的日期串
return value : 处理后的日期串
*************************************************/
function dateFormat(str)
{
var yy="",mm="",dd="";
m=0;
j=0;
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){ m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3)
dd=str.substring(j,i);
j=i+1;
}
}
if (mm!="")
mm=fillZero(mm); if (dd!="") dd=fillZero(dd);
date = yy + mm +dd;
return (date);
}
1.4 判断字符串是否全部由数字组成
/************************************************
function: isNumber
purpose: 判断字符串是否全部由数字组成
parameters : 需要进行判断的字符串
return value : true/false
*************************************************/
function isNumber(controller,message){ var value=controller.value; if(value.length!=0){
for (i=0;i<value.length;i++){
if (value.charAt(i)>'9' || value.charAt(i)<'0'){
alert(message+"为 0-9 的数字");
6
controller.focus();
return false;
}
}
}
return true;
}
1.5 判断字符串是否全部由字母组成
/************************************************
function: isLetter
purpose: 判断字符串是否全部由字母组成
parameters:需要进行判断的字符串
return value: true/false
************************************************/
function isLetter(controller,message){ var value=controller.value; if(value.length!=0){
for(i=0;i<value.length;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
alert(message+"为 A-Z 或 a-z 的字母");
controller.focus();
return false;
}
else return true;
}
}
else return true;
}
1.6 对于月和日,如果前面有零,去除,如 01 变为 1
/************************************************
function: trimZero
purpose: 对于月和日,如果前面有零,去除,如 01 变为 1
parameters : 需要进行处理的字符串
return value : 处理后的字符串
*************************************************/
function trimZero(str)
{
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
7
result = str.substring(i,j);
return result;
}
//判断是否是数字
function isNum(str){ var sl = 0; if(str.length>0)
{
if ((str.charAt(0)<'0' || str.charAt(0)>'9') && str.charAt(0)!='.'&&
str.charAt(0)!='-')
return false;
}
if(str.length>=1)
{
for (var i=0;i<str.length;i++)
{
if ((str.charAt(i)<'0' || str.charAt(i)>'9') && str.charAt(i)!='.')
return false;
if (str.charAt(i) == ".")
{
sl = sl + 1;
}
}
if (sl > 1)
{
return false;
}
if (str.charAt(str.length-1) == ".")
{
return false;
}
if (str == ".")
{
return false;
}
}
return true;
}
1.7 为 1 位的日月在前面补零,如将 1 变为 01
/************************************************
function: fillZero
purpose: 为 1 位的日月在前面补零,如将 1 变为 01
parameters : 需要进行处理的字符串
return value : 处理后的字符串
*************************************************/
8
function fillZero(str)
{
var i,j,result="";
j = str.length;
if (j==1)
result = "0" + str;
else
result = str;
return result;
}
1.8 在删除按钮的 onclick 事件触发
/************************************
function: delConfirm()
purpose: 在删除按钮的 onclick 事件触发
parameters : 提交的表单名称
************************************/
function delConfirm(form){
if (confirm("确定要删除吗?"))
form.submit();
}
/************************************
function: checkEmail() purpose: 检查 EMail 格式 parameters : 控件名称
return value : true/false.
************************************/
function checkEmail(controller)
{
var strEmail=controller.value;
var strE="@"; var strI="."; var i;
var iPos; var iLen; var iT=0;
var strT="";
if (strEmail.length!=0){ strT=strEmail; i=strT.indexOf(" "); if(i != -1)
{ alert("邮件地址不正确");
return false;
}
9
do
{
iPos=strT.indexOf(strE);
iLen=strT.length;
if (iPos==-1)
{
if(iT==0)
{ alert("邮件地址不正确");
return false;
}
else
{
}
else
{
}
break;
if ((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
if (iT !=1)
{ alert("邮件地址不正确");
return false;
}
strT=strEmail.substring(iPos+1,1);
if (strT==".")
{ alert("邮件地址不正确");
return false;
}
iT=0; iPos=strEmail.indexOf(strE); strT=strEmail.substring(iPos+1); do
{
iPos=strT.indexOf(strI);
iLen=strT.length;
if (iPos== -1)
{
break;
10
}
else
{
if((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
iPos=strEmail.indexOf(strE); strT=strEmail.substring(0,iPos); iPos=strT.indexOf(strI);
if(iPos != -1)
{ alert("邮件地址不正确");
return false;
}
}
return true;
}
1.9 对输入控件的内容进行非空检验,如果为空,弹出提示信息
/************************************
function: checkNotnull()
purpose: 对输入控件的内容进行非空检验,如果为空,弹出提示信息
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkNotnull(controller,message){ var value=trim(controller.value); controller.value = value;
if (value.length==0){
alert(message+"不能为空!");
controller.focus();
return false;
}
return true;
}
11
1.10 检验控件值是否是固定位数的有效数字
/************************************
function: checkNumber()
purpose: 检验控件值是否是固定位数的有效数字
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkNumber(controller,len,message){
var value=controller.value;
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message + "为 0-9 的数字");
controller.focus();
return false;
}
}
if (
value.length >
10){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
else if ( value.length == 10){
if (value > "2147483647"){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
}
}
if(value.length>len||(value.length<len&&value!="")){
alert(message+"应为"+len+"位");
return false;
}
else return true;
}
/* */
function checkNum(controller)
{
var value=controller.value;
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0")
12
}
}
return(true);
}
return(false);
function checkNumN(Num)
{
var value=trim(Num);
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0")
return(false);
}
}
return(true);}
1.11 所输内容应为字母
/************************************ Method: checkLetter()
purpose: 所输内容应为字母
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkLetter(controller,len,message){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
alert(message+"为 A-Z 或 a-z 的字母");
controller.focus();
return false;
}
}
}
/**********liu_qchao add 2004-9-21**********/
if(value.length>len){
alert(message+"应小于等于"+len+"位!");
return false;
}
/******************************************/
var upValue = value.toUpperCase();
controller.value = upValue;
return true;
13
}
1.12 过滤掉"'"、"%"、"&"、"/"、"/"
/************************************ Method: quoteFilter()
purpose: 过滤掉"'"、"%"、"&"、"/"、"/"
parameters : 控件名称
************************************/
function quoteFilter(controller){
var value=controller.value;
if (value.length!=0)
{
pos1 = value.indexOf("'"); pos2 = value.indexOf("%"); pos3 = value.indexOf("//"); pos4 = value.indexOf("/"); pos5 = value.indexOf("&");
if(pos1>-1 || pos2>-1 || pos3>-1 || pos4>-1 || pos5>-1)
{
if(pos1>-1)
{
pos1 = value.indexOf("'");
value = value.substring(0,pos1) +
value.substring(pos1+1,value.length);
}
if(pos2>-1)
{
pos2 = value.indexOf("%");
value = value.substring(0,pos2) +
value.substring(pos2+1,value.length);
}
if(pos3>-1)
{
pos3 = value.indexOf("//");
value = value.substring(0,pos3) +
value.substring(pos3+1,value.length);
}
if(pos4>-1)
{
pos4 = value.indexOf("/");
value = value.substring(0,pos4) +
value.substring(pos4+1,value.length);
}
if(pos5>-1)
{
pos5 = value.indexOf("&");
14
value = value.substring(0,pos5) +
value.substring(pos5+1,value.length);
} controller.value = value; quoteFilter(controller);
}
}
}
1.13 删除字符串两侧的空格
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
1.14 取字符串长度(不包含两端的空格)
/************************************
function: getCNTxtLength(controller) purpose: 取字符串长度(不包含两端的空格) parameters : 字符串
return value : int
************************************/
function getCNTxtLength(controller) {
var len; var i; len = 0;
for (i = 0 ;i < controller.length; i++) {
if (controller.charCodeAt(i) > 255)
len += 2;
else
}
len++;
return len;
}
/**/
function formatNumber(num,Fraction)
{
num = num.toString().replace(//$¥|/,/g,'');
if(isNaN(num))//not a number num = "0";
Fraction = Fraction.toString();
15
if(isNaN(Fraction)) Fraction="0";
var nMulti=1;
var nFraction = parseInt(Fraction,10)
for(var i=0;i<nFraction;i++)
nMulti = nMulti*10;
num = Math.round(num*nMulti);
cents = num%nMulti;
num = Math.floor(num/nMulti).toString();
//设置千分位
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
//计算小数点后加多少“0”;
var n = 0;
var sum = cents; var zero=""; if(cents ==0)
{
}
else
{
n = nFraction-1;
while(sum*10 < nMulti)
{
sum = sum*10;
n++;
}
}
for(var j=0;j<n;j++)
{
zero = zero +"0";
}
cents = zero + cents;
if(nFraction > 0)
num = num + '.' + cents;
return num;
}
function amtTranBack(moneyStr){
return parseFloat(moneyStr.replace(/,/g, ""));
}
//将金额转化成按千分位的显示格式
function amtTranShow(amtStr){
var a,renum='';
16
var j=0;
var a1='',a2='',a3=''; var tes=/^-/; if(event.keyCode>=33&&event.keyCode<=40) return;
a=amtStr.replace(/,/g, "");
a=a.replace(/[^-/.,0-9]/g,"");//删除无效字符
a=a.replace(/(^/s*)|(/s*$)/g, "");//trim if(tes.test(a)) a1='-';
else a1='';
a=a.replace(/-/g,"");
if(a!="0" && a.substr(0,2)!="0.")a=a.replace(/^0*/g, "");
j=a.indexOf('.'); if(j<0) j=a.length; a2=a.substr(0,j); a3=a.substr(j); j=0;
for( i=a2.length;i>3;i=i-3){ renum=","+a2.substr(i-3,3)+renum; j++;
}
renum=a1+a2.substr(0,a2.length-j*3)+renum+a3;
return renum;
}
1.15 清空查询条件
/************************************ Method: setClear()
purpose: 清空查询条件
parameters: num 页面上的控件个数
************************************/
function setClear(){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.type!="button")
{
whichEl.value = "";
}
}
divColl = document.all.tags("select");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if(whichEl.name!="pagesize"&&whichEl.name!="Pagelist")
whichEl.options[0].selected = true;
17
}
}
1.16 价格输入是否合法(99,999.00)
/************************************ Method: checkPrice()
purpose: 价格输入是否合法(99,999.00)
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkPrice(controller,message){
var value=controller.value;
var m=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if ((value.charAt(i)>"9" || value.charAt(i)<"0") &&
value.charAt(i)!="." && value.charAt(i)!=",") {
alert(message + "用小数或整数表示!");
controller.focus();
return(false);
}
if (value.charAt(i)==".")
{
m++;
}
}
if (
m>1)
{
alert(message + "至多有一个小数点!");
controller.focus();
return(false);
}
}
else controller.value="";
return true;
}
1.17 检验货票号为 1 位字母+6 位数字
/************************************ Method: checkHph()
purpose: 检验货票号为 1 位字母+6 位数字
parameters : 控件名称,提示信息
return value : true/false.
18
************************************/
function checkHph(controller,message){
var value=controller.value;
if (value.length!=0 ){
if((!(value.charAt(0)>="a" && value.charAt(0)<="z")) && (!(value.charAt(0)<="Z" && value.charAt(0)>="A"))){
alert(message+"的第一位应该为字母");
controller.focus();
return(false);
}
for (var i=1;i<value.length;i++){
if( value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message+"的格式错误,正确的格式应为 1 位字
母+6 位数字");
}
controller.focus();
return(false);
}
}
upValue = value.toUpperCase();
controller.value = upValue;
return true;
}
1.18 检验起始货票号必须小于截至货票号
/************************************ Method: checkHphSeq()
purpose: 检验起始货票号必须小于截至货票号
parameters :
return value : true/false.
************************************/ function checkHphSeq(qsController,jzController){ var qshp=qsController.value;
var jzhp=jzController.value;
if (qshp.length==0 && jzhp.length!=0){
var i = checkHph(jzController,"截止货票号");
return i;
}
if (
jzhp.length==0 && qshp.length!=0){
var j = checkHph(qsController,"起始货票号");
return j;
}
if (qshp.length!=0 && jzhp.length!=0){
if (!checkHph(qsController,"起始货票号"))
return false;
19
if (!checkHph(jzController,"截止货票号"))
return false;
if (checkHph(qsController,"起始货票号") && checkHph(jzController,"截止货票号
")){
if (qshp>jzhp){
alert("起始货票号不能大于截止货票号!");
return false;
}
}
}
return true;
}
1.19 检验查询条件是否为空,为空则提示"查询条件不能为空!"
/************************************ Method: checkConditionNotNull()
purpose: 检验查询条件是否为空,为空则提示"查询条件不能为空!"
parameters :
return value : true/false.
************************************/
function checkConditionNotNull(){
var notNull=false;
divColl = document.all.tags("select");
for (i=0; i<divColl.length; i++) { whichEl = divColl(i); if(whichEl.value.length!=0){
if(whichEl.id!="fsdwlx"&&whichEl.id!="dddwlx"&&whichEl.name!="pagesize"
&&whichEl.name!="Pagelist"&&whichEl.id!="zfdwlx"&&whichEl.id!="zddwlx"
&&whichEl.id!="xfdwlx"&&whichEl.id!="xddwlx"){
notNull=true;
break;
}
}
}
if(notNull==false){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.type!="button"&&
whichEl.type !="hidden"){
if(whichEl.value.length!==0){
notNull=true;
break;
}
20
}
}
}
if(notNull==true) return true;
else {
alert("查询条件不能为空!");
return false;
}
}
1.20 检验是不是最短位数的数字,用于模糊查询
/************************************
Method: checkNumberLeastLen(controller,leastLen,message)
purpose: 检验是不是最短位数的数字,用于模糊查询
parameters : controller,leastLen,message return value : true/false.
************************************/
function checkNumberLeastLen(controller,leastLen,message){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message + "为 0-9 的数字");
controller.focus();
return false;
}
}
if (
value.length >=10){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
}
if(value.length <leastLen&&value.length>0){
alert(message+"至少应为"+leastLen+"位");
controller.focus();
return false;
}
else return true;
}
1.21 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数
/************************************
Method: checkDecimalNumber(controller,message,befor,after)
purpose: 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数
21
parameters : 控件名称,提示信息,小数点前面的最大位数,小数点后面的最 大位数
return value : true/false.
************************************/
function checkDecimalNumber(controller,message,befor,after){
var re=new RegExp("^((//d{1," + befor + "}(//.//d{1," + after + "})?)||(//.//d{1," + after + "}))$");
if(!re.test(controller.value)){
alert("提示:" + message + "输入错误必须为整数或小数,且整数位不
得大于" + befor + "位," + "小数位不得大于" + after + "位!");
return false;
}else{
}
}
return true;
1.22 电话号码校验(只能为横线—、()、或数字)
/************************************ Method: isTel(controller)
purpose: 电话号码校验(只能为横线—、()、或数字)
************************************/
function isTel(controller){
var tel=controller.value;
var validchars = "-()1234567890 ";
for (i=0;i<tel.length;i++){
telchar=tel.charAt(i);
if (validchars.indexOf(telchar, 0) == -1){
alert("请输入正确的电话号码格式!");
controller.focus();
return false;
}
}
return true;
}
/************************************ (1)电话号码由数字和-组成 (2)电话号码为 7 到 13 位
(3)13 开头的头的手机号码必须为 11 位
************************************/
function phoneCheck(controller,msg) { var str=trim(controller.value); var rst = str.substr(0,2);
var re = /^[1][3]/d{9}$/;
var reg = /^((/d{3,4}/-)?/d{7,8}(/-/d)?)$/;
if((rst == 13)&&(str.length!=11)&&!re.test(str)){
22
alert(msg+"号码格式错误,请输入正确的电话号码(手机)!");
controller.focus();
return false;
}else if((rst != 13)&&!reg.test(str)){
alert(msg+"号码格式错误,请输入正确的电话号码!");
controller.focus();
return false;
}
return true;
}
1.23 检测输入是否为正整数数字,如果结果为非给出相应提示
/************************************
Method: checkNumber(controller,message)
purpose: 检测输入是否为正整数数字,如果结果为非给出相应提示
parameters : 控件名称,提示信息
return value : true/false.
condition: controller:must;message:optional
************************************/
function checkNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
if(message!=null){
alert(message+":为正整数的数字")
}else{
alert("为正整数的数字");
}
controller.value=""; controller.focus(); return(false);
}
}
}
controller.value=value;
return true;
}
23
1.24 避免多次提交页面 在 jsp 中嵌入该文件,在每个 jsp 页面的提交语
Method: checkSubmit()
purpose: 避免多次提交页面 在 jsp 中嵌入该文件,在每个 jsp 页面的提交语
句前执行该方法
************************************/
var requestSubmitted = false;
function checkSubmit()
{
if(requestSubmitted == true)
{
alert("您已经提交了请求,请等待服务器的应答......");
return false;
}
requestSubmitted =
true;
return true;
}
1.25 检查 EMail 格式
/**********************************************
function: checkEmailAll() purpose: 检查 EMail 格式 parameters : 控件名称
return value : true/false.
**********************************************/
function checkEmailAll(controller){
var strEmail=trim(controller.value);
var strE="@"; var strI="."; if(strEmail.indexOf(" ")>0){
alert("邮件地址不正确");
return false;
}
if(strEmail.indexOf(strE)==-1){
alert("邮件地址不正确");
return false;
}
if(strEmail.indexOf(strI)==-1){
alert("邮件地址不正确");
return false;
}
var count = 0;
if (strEmail.length!=0){
for (var i=0;i<strEmail.length;i++){
if (strEmail.charAt(i)=="."){
24
}
}
if(count>2){
count++;
}
return false;
}
alert("邮件地址不正确");
if(count==1){
if((strEmail.indexOf(strI)- strEmail.indexOf(strE)<2)||(strEmail.indexOf(strI)==(strEmail.length-1))){
alert("邮件地址不正确");
return false;
}
}
if(count==2){
if(((strEmail.indexOf(strI)- strEmail.indexOf(strE)<2)||(strEmail.lastIndexOf(strI)- strEmail.indexOf(strI)<2))||(strEmail.lastIndexOf(strI)==(strEmail.length-1))){
alert("邮件地址不正确");
return false;
}
}
return true;
}
1.26 电话号码由数字和-组成
/************************************
电话号码由数字和-组成
************************************/
function phoneCheckH(controller,msg) {
var str=trim(controller.value);
var reg = /^(/d+/-?)+$/; var count=0; if(str.length!=0){
if(str.charAt(str.length-1)=="-"||str.charAt(0)=="-") count=1;
}
if(count==1){
alert(msg+'不能以"-"开始和结束');
return false;
}else{
if(!reg.test(str)){
alert(msg+'号码格式错误,只允许输入 0-9 的数字或者单个"-"!');
25
controller.focus();
return false;
}
return true;
}
return true;
}
/************************************************
function: checkDateSeq
purpose: 检验输入的时间段,日期格式 yyyy-MM-dd
parameters : 起始日期控件名称,终止日期控件名称,formatter 输入日期的格 式
输入值为年,formatter 对应"y";
输入值为月,formatter 对应"ym"; 输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/
function checkDateSeq(qsrqController,zzrqController,formatter,message){
var qsrq=qsrqController.value; var zzrq=zzrqController.value; if(message==null) message="";
if (qsrq.length==0 && zzrq.length!=0){
return checkDate(zzrqController,formatter,message);
}
if (
zzrq.length==0
&& qsrq.length!=0){
return checkDate(qsrqController,formatter,message);
}
if (zzrq.length!=0 && qsrq.length!=0){
if (!checkDate(qsrqController,formatter,message))
return false;
if (!checkDate(zzrqController,formatter,message))
return false;
if (checkDate(qsrqController,formatter,message) &&
checkDate(zzrqController,formatter,message)){
if (format(qsrq)>format(zzrq)){
alert(message+"起始日期不能大于终止日期!");
return false;
}
}
}
return true;
}
//格式为 yyyymmdd
26
function format(str)
{
var yy="",mm="",dd="";
m=0;
j=0;
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){ m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3)
dd=str.substring(j,i);
j=i+1;
}
}
if (
mm!="")
mm=add0(mm); if (dd!="") dd=add0(dd);
date = yy + mm +dd;
return (date);
}
//数字检验
function isInt(str){
if(str.length!=0){
for (i=0;i<str.length;i++)
if ( str.charAt(i)<'0' || str.charAt(i)>'9')
return false;
}
return true;
}
//月日去 0
function trim0(str)
{
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
result = str.substring(i,j);
return result;
}
//月日加 0
function add0(str)
{
var i,j,result="";
27
j = str.length;
if (j==1)
result = "0" + str;
else
result = str;
return result;
}
1.26 检验输入的日期 yyyy-MM-dd
/************************************************
function: checkDate
purpose: 检验输入的日期 yyyy-MM-dd
parameters : 日期控件名称,formatter 输入日期的格式 输入值为年,formatter 对应"y";
输入值为月,formatter 对应"ym"; 输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/
function checkDate(controller,formatter,message){
var str=trim(controller.value); if(message==null) message=""; controller.value = str;
m=0; j=0; k=0;
if (str.length==0)
return true;
for(i=0;i<str.length;i++){ if(str.charAt(i)=="-") k++;
}
if (formatter=="y"){
if (k!=0){
alert(message+"缺少月份和日期!!");
//controller.focus();
return false;
}
}
if (
formatter=="ym"){
if (k!=1){
alert(message+"缺少日期部分!!");
//controller.focus();
return false;
28
}
}
if (
formatter=="ymd"){
if (k!=2){
alert(message+"格式不正确,请按 YYYY-MM-DD 格式输入!");
//controller.focus();
return false;
}
}
var yy="",mm="",dd="",temp; for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){
m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3){ dd=str.substring(j,i); if(dd==""){
alert(message+"日期不能为零号!!")
//controller.focus();
return false;
}
}
j=i+1;
}
}
if (yy.length==0)
{
alert(message+"年份不能为空!");
//controller.focus();
return false;
}
if(yy.length!=4){
alert(message+"年份必须为四位数字!");
//controller.focus();
return false;
}
if (formatter=="ym" || formatter=="ymd")
{
if(mm.length>2||mm.length==1){
alert(message+"月份必须为两位数字!如 01,10");
//controller.focus();
return false;
29
}
}
if (
formatter=="ymd")
{
if(dd.length>2||dd.length==1){
alert(message+"日期必须为两位数字!如 01,10");
//controller.focus();
return false;
}
}
yy=trim0(yy); mm=trim0(mm); dd=trim0(dd);
if(!isInt(yy)){
alert(message+"年份必须为数字!");
//controller.focus();
return false;
}
if(parseInt(yy)<1900 || parseInt(yy)>9999 ||(yy=="")){
alert(message+"年份必须在 1900-9999 之间!!");
//controller.focus();
return false;
}
if (formatter=="ym" || formatter=="ymd")
{
if(!isInt(mm)){
alert(message+"月份必须为数字!!");
//controller.focus();
return false;
}
if(parseInt(mm)>12 || parseInt(mm)<1||(mm=="")){
alert(message+"月份必须在 1-12 之间!");
//controller.focus();
return false;
}
}
if (formatter=="ymd")
{
if(!isInt(dd)){
alert(message+"日期必须为数字!!");
//controller.focus();
return false;
30
}
if (dd=="")
{
alert(message+"日期不能为 0!");
//controller.focus();
return false;
}
if((mm=="1" || mm=="3" || mm=="5" || mm=="7" || mm=="8" || mm=="10" ||
mm=="12") && parseInt(dd)>31){
alert(message+"该月最大为 31 天!");
//controller.focus();
return false;
}
if(( mm=="4" || mm=="6" || mm=="9" || mm=="11") && parseInt(dd)>30){
alert(message+"该月最大为 30 天");
//controller.focus();
return false;
}
if(mm=="2"){
// alert((parseInt(yy)%4));
if((parseInt(yy)%4)==0){
if(parseInt(dd)>29){
alert(message+"该月日期不能大于 29");
//controller.focus();
return false;
}
}
else{
if(parseInt(dd)>28){
alert(message+"该月日期不能大于 28");
//controller.focus();
return false;
}
}
}
}
return true;
}
function checkTwoDate(qsrqController,zzrqController,formatter){
var qsrq=qsrqController.value;
var zzrq=zzrqController.value;
if (qsrq.length==0 && zzrq.length!=0){
alert("请输入起始日期!");
//qsrqController.focus();
return false;
31
}
if (
zzrq.length==0
&& qsrq.length!=0){
alert("请输入终止日期!");
//zzrqController.focus();
return false;
}
if (zzrq.length!=0 && qsrq.length!=0){
if (!checkDate(qsrqController,formatter))
return false;
if (!checkDate(zzrqController,formatter))
return false;
if (checkDate(qsrqController,formatter) &&
checkDate(zzrqController,formatter)){
if (format(qsrq)>format(zzrq)){
//alert("起始日期不能大于终止日期!");
//qsrqController.focus();
return false;
}
}
}
return true;
}
//删除字符串两侧的空格
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
//用下拉框显示月、日,日下拉框根据年月确定
function DaysInMonth(WhichMonth, WhichYear)
{
var DaysInMonth = 31;
if (WhichMonth == "04" || WhichMonth == "06" || WhichMonth == "09" || WhichMonth == "11") DaysInMonth = 30;
if (WhichMonth == "02" && (WhichYear/4) != Math.floor(WhichYear/4)) DaysInMonth = 28;
if (WhichMonth == "02" && (WhichYear/4) == Math.floor(WhichYear/4)) DaysInMonth = 29;
return DaysInMonth;
}
//function to change the available days in a months
//用于根据年月显示日期下拉框长度,供 dateTag 标签使用,不要删除
32
function ChangeOptionDays(yearObject,monthObject,daysObject){
year = trim(yearObject.value);
if(monthObject==null || daysObject==null){//如果只有年份或只有日期
if (year=="")
{
alert("请先输入年份!");
yearObject.focus();
return false;
}
if (
year.length==0)
{
alert("年份不能为空!");
yearObject.focus();
return false;
}
if(year.length!=4){
alert("年份必须为四位数字!");
yearObject.focus();
return false;
}
if(!isInt(year)){
alert("年份必须为数字!");
yearObject.focus();
return false;
}
if(parseInt(year)<1900 || parseInt(year)>9999 ||(year=="")){
alert("年份必须在 1900-9999 之间!!");
yearObject.focus();
return false;
}
}else{
month = monthObject[monthObject.selectedIndex].text;
if (month!="")
{
if (year=="")
{
alert("请先输入年份!");
yearObject.focus();
return false;
}
if (
year.length==0)
{
alert("年份不能为空!");
yearObject.focus();
return false;
}
33
if(year.length!=4){
alert("年份必须为四位数字!");
yearObject.focus();
return false;
}
if(!isInt(year)){
alert("年份必须为数字!");
yearObject.focus();
return false;
}
if(parseInt(year)<1900 || parseInt(year)>9999 ||(year=="")){
alert("年份必须在 1900-9999 之间!!");
yearObject.focus();
return false;
}
}
DaysForThisSelection = DaysInMonth(month, year); CurrentDaysInSelection = daysObject.length;
if (CurrentDaysInSelection-1 > DaysForThisSelection)
{
for (i=0; i<(CurrentDaysInSelection-1-DaysForThisSelection); i++)
{
daysObject.options[daysObject.options.length - 1] = null
}
}
if (DaysForThisSelection > CurrentDaysInSelection-1)
{
for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection+1); i++)
{
NewOption = new
Option(daysObject.options.length,daysObject.options.length);
daysObject.add(NewOption);
}
}
if (daysObject.selectedIndex < 0) daysObject.selectedIndex == 0;
}
return true;
}
1.27 去掉界面上开头的空格,过滤掉"'" 和"""
/********************************************************************
************
allTrim(): 去掉界面上开头的空格,过滤掉"'" 和"""
trim(str): 删除字符串两侧的空格
quoteFilter(controller): 过滤掉"'"和"""
34
setClear(): 清空查询条件
checkId(idcontroller,message) 身份证为 15 或 18 位数字或字母
checkUserIdAndPassword(idcontroller,pwcontroller): 操作员代码为 7 位数字,密 码最少为 4 位
checkDateSeq(qsrqController,zzrqController,formatter): 检验输入的时间段,日期 格式 yyyy-MM-dd
checkDate(controller,formatter): 检验输入日期 yyyy-MM-dd/YYYY-MM/YYYY
的完整性及合法性
checkTime(h,m): 时间校验,小时数在 0——23 之间,分钟数在 0——59 之间
checkEmail(controller): 检查 EMail 格式是否正确
isTel(controller): 电话号码校验(只能为下划线—、()、或数字)
checkLetter(controller,message): 所输内容应为字母
checkNotnull(controller,message): 所输内容不能非空 checkPrice(): 价格输入是否合法(99,999.00) checkDecimalAndUnknown(controller,message,befor,after):
检测价格格式是否正确(例如 99,999.00), 且小数点前后不能超过规定位数(由参数 befor,after 决定)
checkCNTxtLength(controller, message): 判断文本内容是否少于 2 个汉字/字符
(js 中汉字和字符占位一样)
getCNTxtLength(str): 得到字符串的长度,如果字符串中包含有中文/中文符号 的话,算作两个字符
checkNumOrLet(controller,message): 输入为字母或数字
checkNumberAndUnknown(controller,message): 输入为数字或不详,且数值不 能超过 5 位 32767
checkNumber(controller,message): 输入为数字
checkSmallintNumber(controller,message): 输入为短整型,数值不能超过 5 位
32767
checkIntNumber(controller,message): 输入为整型,数值不能超过 10 位
2147483647
checkNotZeroNumber(controller,message): 输入为非零数字,且数值不能超过
10 位 2147483647
checkDecimalNumber(controller,message,befor,after): 输入为 Decimal 格式的 数,且小数点前后都不能超过规定的位数
checkMayMinusNumber(controller,message): 可以为负数的数字
checkReportNumber(controller,message): 险情报告编号为四位年份加三位数字
checkDegree(degController,minController,decController,message): 检验度数控制值是否是数字,并且小于或等于 180; 检验分控制值是否是数字,并且小于 60;
检验小数控制值是否是数字
*********************************************************************
*************/
1.28 去掉界面上开头的空格,过滤掉"'" 和"""
/************************************
35
Method: allTrim()
purpose: 去掉界面上开头的空格,过滤掉"'" 和"""
************************************/
function allTrim(){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
whichEl.value = trim(whichEl.value);
quoteFilter(whichEl);
}
}
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
1.29 去掉汉字间空格
/************************************ Method: quoteFilter1(controller)
purpose: 去掉汉字间空格
************************************/
function quoteFilter1(controller){ var value=controller.value; var c = "0";
if (value.length!=0){
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>="a"&& value.charAt(i)<="Z"){
c = "2";
}
}
if(c == "0"){
for(var i = 0;i <value.length;i++){
pos1 = value.indexOf(" ");
if(pos1>-1) {
value = value.substring(0,pos1) +
value.substring(pos1+1,value.length);
}
controller.value = value;
controller.value= this != window? this : controller.value;
value = controller.value.replace(/^/s+/g, '').replace(//s+$/g, '');
}
return value;
}else{
36
return controller.value;
}
}
}
1.30 大小写转换
/************************************ Method: convert(str)
purpose: 大小写转换
parameters : 控件名称
************************************/
function convert(str){
if(str.length!=0){
var a = str.substring(0,1).toUpperCase();
pos1 = str.indexOf(" ");
if(pos1>-1)
{
var m =str.substring(1,pos1+1);
var b = str.substring(pos1+1,pos1+2).toUpperCase();
var e = str.substring(pos1+2,str.length);
}
str = a+m+b+e;
return str;
}
}
1.31 过滤掉"'"和"""
/************************************ Method: quoteFilter()
purpose: 过滤掉"'"和"""
parameters : 控件名称
************************************/
function quoteFilter(controller){
var value=controller.value;
if (value.length!=0)
{
pos1 = value.indexOf("'"); pos2 = value.indexOf('"'); if(pos1>-1 || pos2>-1)
{
if(pos1>-1)
{
37
value = value.substring(0,pos1) +
value.substring(pos1+1,value.length);
}
if(pos2>-1)
{
value = value.substring(0,pos2) +
value.substring(pos2+1,value.length);
} controller.value = value; quoteFilter(controller);
}
}
}
1.32 清空查询条件
/************************************ Method: setClear()
purpose: 清空查询条件
parameters: num 页面上的控件个数
************************************/
function setClear(){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.value != "清空" && whichEl.value != "删除"
&& whichEl.value != "测试")
{
whichEl.value = "";
}
}
divColl = document.all.tags("select");
for (i=0; i<divColl.length; i++) { whichEl = divColl(i); whichEl.options[0].selected = true;
}
}
1.33 过滤掉"'"和"""和空格
/************************************ Method: quoteFilter(controller)
purpose: 过滤掉"'"和"""和空格
parameters : 控件名称
38
************************************/
function quoteFilter(controller){ controller.value=controller.value.replace("'",""); controller.value=controller.value.replace('"',"");
controller.value = controller.value.replace(/^/s+/g, '').replace(//s+$/g, '');
}
1.34 操作员代码为 7 位数字,密码最少为 4 位
/************************************
Method: checkUserIdAndPassword(idcontroller,pwcontroller)
purpose: 操作员代码为 7 位数字,密码最少为 4 位
parameters : 代码控件名称,密码控件名称
return value : true/false.
************************************/
function checkUserIdAndPassword(idcontroller,pwcontroller){
var idvalue=trim(idcontroller.value);
var pwvalue=trim(pwcontroller.value);
if (idvalue.length==0)
{
alert("操作员代码不能为空!");
idcontroller.focus();
return(false);
}
if (pwvalue.length==0)
{
alert("操作员密码不能为空!");
pwcontroller.focus();
return(false);
}
return true;
}
1.35 身份证为 15 或 18 位数字或字母
/************************************ Method: checkId(idcontroller)
purpose: 身份证为 15 或 18 位数字或字母
parameters : 控件名称 提示信息
return value : true/false.
************************************/
function checkId(idcontroller,message){
var idvalue=trim(idcontroller.value);
for (var i=0;i<idvalue.length;i++)
39
{
if ((!(idvalue.charAt(i)>="0" && idvalue.charAt(i)<="9"))
&&(!(idvalue.charAt(i)>="a"&& idvalue.charAt(i)<="z"))
&&(!(idvalue.charAt(i)>="A"&& idvalue.charAt(i)<="Z")))
{
alert(message + "为字母或数字");
idcontroller.focus();
return(false);
}
}
if (idvalue.length!=15 && idvalue.length!=18)
{
alert("身份证号码只能为 15 位或 18 位!");
idcontroller.focus();
return(false);
}
return true;
}
1.36 检验输入的时间段,日期格式 yyyy-MM-dd
/************************************************
function: checkDateSeq(qsrqController,zzrqController,formatter)
purpose: 检验输入的时间段,日期格式 yyyy-MM-dd
parameters : qsrqController 起始日期控件名称,zzrqController 终止日期控件名 称,
formatter 输入日期的格式
输入值为年,formatter 对应"y"; 输入值为年月,formatter 对应"ym"; 输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/ function checkDateSeq(qsrqController,zzrqController,formatter){ var qsrq=qsrqController.value;
var zzrq=zzrqController.value;
if (qsrq.length==0 && zzrq.length!=0){
alert("请输入起始日期!");
qsrqController.focus();
return false;
}
if (
zzrq.length==0
&& qsrq.length!=0){
alert("请输入终止日期!");
zzrqController.focus();
40
return false;
}
if (zzrq.length!=0 && qsrq.length!=0){
if (!checkDate(qsrqController,formatter)){
return false;
}
if (!checkDate(zzrqController,formatter)){
return false;
}
if (checkDate(qsrqController,formatter) && checkDate(zzrqController,formatter)){
if (format(qsrq)>format(zzrq)){
alert("起始日期不能大于终止日期!");
qsrqController.focus();
return false;
}
}
}
return true;
}
//格式为 yyyymmdd function format(str)
{
var yy="",mm="",dd="";
m=0;
j=0;
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){ m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3)
dd=str.substring(j,i);
j=i+1;
}
}
if (yy!="")
{
yy=add0(yy);
}
if (mm!="")
mm=add0(mm);
if (dd!="")
41
dd=add0(dd);
date = yy + mm +dd;
return (date);
}
//数字检验
function isInt(str){
if(str.length!=0){
for (i=0;i<str.length;i++)
if ( str.charAt(i)<'0' || str.charAt(i)>'9')
return false;
}
return true;
}
//月日去 0
function trim0(str)
{
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
result = str.substring(i,j);
return result;
}
//月日加 0
function add0(str)
{
var i,j,result="";
j = str.length;
if (j==1)
result = "0" + str;
else
result = str;
return result;
}
1.37 检验输入的时间段,日期格式 yyyy-MM-dd
/************************************************
function: checkDate(controller,formatter)
purpose: 检验输入的日期 yyyy-MM-dd
parameters : 日期控件名称,formatter 输入日期的格式 输入值为年,formatter 对应"y"; 输入值为月,formatter 对应"ym";
输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/
42
function checkDate(controller,formatter){ var str=trim(controller.value); controller.value = str;
m=0; j=0; k=0;
if (str.length==0)
return true;
for(i=0;i<str.length;i++){ if(str.charAt(i)=="-") k++;
}
if (formatter=="y"){
if (k!=0){
alert("只输入年份!!");
controller.focus();
return false;
}
}
if (
formatter=="ym"){
if (k!=1){
alert("输入年、月!!");
controller.focus();
return false;
}
}
if (
formatter=="ymd"){
if (k!=2){
alert("输入年、月、日!!");
controller.focus();
return false;
}
}
var yy="",mm="",dd="",temp; for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){
m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3){ dd=str.substring(j,i); if(dd==""){
alert("日期不能为零号!!")
controller.focus();
43
return false;
}
}
j=i+1;
}
}
if (yy.length==0)
{
alert("年份不能为空!");
controller.focus();
return false;
}
if(yy.length!=4){
alert("年份必须为四位数字!");
controller.focus();
return false;
}
if (formatter=="ym" || formatter=="ymd")
{
if(mm.length>2){
alert("月份必须为一位或两位数字!");
controller.focus();
return false;
}
}
if (
formatter=="ymd")
{
if(dd.length>2){
alert("日期必须为一位或两位数字!");
controller.focus();
return false;
}
}
yy=trim0(yy); mm=trim0(mm); dd=trim0(dd);
if(!isInt(yy)){
alert("年份必须为数字!");
controller.focus();
return false;
}
if(parseInt(yy)<1900 || parseInt(yy)>2079 ||(yy=="")){
alert("年份必须在 1900-2079 之间!!");
controller.focus();
return false;
}
44
if (formatter=="ym" || formatter=="ymd")
{
if(!isInt(mm)){
alert("月份必须为数字!!");
controller.focus();
return false;
}
if(parseInt(mm)>12 || parseInt(mm)<1||(mm=="")){
alert("月份必须在 1-12 之间!!!");
controller.focus();
return false;
}
}
if (formatter=="ymd")
{
if(!isInt(dd)){
alert("日期必须为数字!!");
controller.focus();
return false;
}
if (dd=="")
{
alert("日期不能为 0!");
controller.focus();
return false;
}
if((mm=="1" || mm=="3" || mm=="5" || mm=="7" || mm=="8" || mm=="10" ||
mm=="12") && parseInt(dd)>31){
alert("该月最大为 31 天!!!");
controller.focus();
return false;
}
if(( mm=="4" || mm=="6" || mm=="9" || mm=="11") && parseInt(dd)>30){
alert("该月最大为 30 天");
controller.focus();
return false;
}
if(mm=="2"){
// alert((parseInt(yy)%4));
if((parseInt(yy)%4)==0){
if(parseInt(dd)>29){
alert("二月日期不能大于 29");
controller.focus();
return false;
}
}
45
else{
if(parseInt(dd)>28){
alert("二月日期不能大于 28");
controller.focus();
return false;
}
}
}
}
return true;
}
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
function checkTwoDate(qsrqController,zzrqController,formatter){
var qsrq=qsrqController.value;
var zzrq=zzrqController.value;
if (qsrq.length==0 && zzrq.length!=0){
alert("请输入起始日期!");
//qsrqController.focus();
return false;
}
if (
zzrq.length==0
&& qsrq.length!=0){
alert("请输入终止日期!");
//zzrqController.focus();
return false;
}
if (zzrq.length!=0 && qsrq.length!=0){
if (!checkDate(qsrqController,formatter))
return false;
if (!checkDate(zzrqController,formatter))
return false;
if (checkDate(qsrqController,formatter) &&
checkDate(zzrqController,formatter)){
if (format(qsrq)>format(zzrq)){
alert("起始日期不能大于终止日期!");
//qsrqController.focus();
return false;
}
}
}
46
return true;
}
//删除字符串两侧的空格
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
1.38 时间校验,小时数在 0——23 之间,分钟数在 0——59 之间
/******************************* Method: checkTime(h,m)
Purpose: 时间校验,小时数在 0——23 之间,分钟数在 0——59 之间
Parameters: 控件名称,控件名称
return value: true/false
*******************************/
function checkTime(h,m)
{
hh = h.value;
mm = m.value;
//ss = document.all(s).value;
tt = "" + hh + mm;
if(hh == "")
{
}
else
{
return true;
tlength = tt.length;
bb=true;
for(i = 0;i<=length;i++)
{
if(tt.substring(i,i+1)>=0 && tt.substring(i,i+1)<=9)
{
}
if(bb)
{
}
else
{
}
bb = true;
alert("输入的时间必须为数字!");
h.focus();
return false;
if( hh*1 >= 0 && hh*1 <= 23)
{
if( mm*1 >= 0 && mm*1 <= 59)
47
{
/*if( ss*1 >= 0 && ss*1 <= 59)
{
间!");
}
else
{
}*/
return true;
alert("输入的时间秒数必须在 0-59 之
return false;
}
else
{
}
else
{
}
return true;
alert("输入的时间分钟数必须在 0-59 之间!");
m.focus();
return false;
}
}
else
{
alert("输入的时间小时数必须在 0-23 之间!");
h.focus();
return false;
h.focus();
return false;
}
}
}
1.39 检查 EMail 格式是否正确
/************************************ Method: checkEmail(controller)
purpose: 检查 EMail 格式是否正确
parameters : 控件名称
return value : true/false.
************************************/
function checkEmail(controller)
{
var strEMail=controller.value;
48
var strE="@"; var strI="."; var iPos;
var iLen; var iT=0; var strT="";
if (strEMail.length!=0){ strT=strEMail; do
{
iPos=strT.indexOf(strE);
iLen=strT.length;
if (iPos== -1)
{
if(iT==0)
{ alert("邮件地址不正确");
return false;
}
else
{
}
else
{
}
break;
if ((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
if (iT !=1)
{ alert("邮件地址不正确");
return false;
}
strT=strEMail.substring(iPos+1,1);
if (strT==".")
{ alert("邮件地址不正确");
return false;
}
iT=0;
iPos=strEMail.indexOf(strE);
49
strT=strEMail.substring(iPos+1);
do
{
iPos=strT.indexOf(strI);
iLen=strT.length;
if (iPos== -1)
{
}
else
{
break;
if((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
iPos=strEMail.indexOf(strE); strT=strEMail.substring(0,iPos); iPos=strT.indexOf(strI);
if(iPos != -1)
{ alert("邮件地址不正确");
return false;
}
}
return true;
}
1.40 电话号码校验(只能为下划线—、()、或数字)
/************************************ Method: isTel(controller)
purpose: 电话号码校验(只能为下划线—、()、或数字)
测试页面: test1.jsp
************************************/
function isTel(controller){
var tel=controller.value;
var validchars = "-()1234567890 ";
for (i=0;i<tel.length;i++){
telchar=tel.charAt(i);
if (validchars.indexOf(telchar, 0) == -1){
alert("请输入正确的电话号码格式!");
50
controller.focus();
return false;
}
}
return true;
}
1.41 所输内容应为字母
/************************************
Method: checkLetter(controller,message)
purpose: 所输内容应为字母
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkLetter(controller,message){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
alert(message+"为 A-Z 或 a-z 的字母");
controller.focus();
return(false);
}
}
}
//upValue = value.toUpperCase();
//controller.value = upValue;
return true;
}
1.41 所输内容不能非空
/************************************
Method: checkNotnull(controller,message)
purpose: 所输内容不能非空
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkNotnull(controller,message){
var value=trim(controller.value);
if (value.length==0){
51
alert(message+"不能为空!")
controller.focus();
return false;
}
return true;
}
1.42 价格输入是否合法(99,999.00)
/************************************ Method: checkPrice()
purpose: 价格输入是否合法(99,999.00)
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkPrice(controller,message){
var value=controller.value;
var m=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if ((value.charAt(i)>"9" || value.charAt(i)<"0") &&
value.charAt(i)!="." && value.charAt(i)!=",") {
alert(message + "用小数或整数表示!");
controller.focus();
return(false);
}
if (value.charAt(i)==".")
{
m++;
}
}
if (m>1)
{
alert(message + "至多有一个小数点!");
controller.focus();
return(false);
}
}
return true;
}
52
1.43 价格输入是否合法(99,999.00)
/************************************
Method: checkDecimalAndUnknown(controller,message,befor,after) purpose: 价格输入是否合法(99,999.00)过规定位数(由参数 befor,after 决定)
parameters : 控件名称,提示信息,小数点前面的位数,小数点后面的位数
return value : true/false.
测试页面: test.jsp
************************************/
function checkDecimalAndUnknown(controller,message,befor,after){
var value=controller.value;
if(value == '不详'){
return true;
}
if (
value.length!=0){
for (var i=0;i<value.length;i++){
if ((value.charAt(i)>"9" || value.charAt(i)<"0") &&
value.charAt(i)!="." && value.charAt(i)!=",") {
alert(message + "用小数或整数或不详表示!");
controller.focus();
return(false);
}
}
}
var pos = value.indexOf(".");//小数点位置
if(pos > -1){
if(pos > befor){
alert("小数点前边位数不能超过"+befor+"位!");
controller.focus();
return false;
}
if(value.length-pos -
1
>
after){
alert("小数点后边位数不能超过"+after+"位!");
controller.focus();
return false;
}
}
else{
if(value.length>befor){
alert("整数位数不能超过"+befor+"位!");
controller.focus();
return false;
}
}
return true;
53
1.44 判断文本内容是否少于 2 个汉字/字符(js 中汉字和字符占位一样)
/*******************************
Method: checkCNTxtLength(controller, message)
Purpose: 判断文本内容是否少于 2 个汉字/字符(js 中汉字和字符占位一
样)
Parameters: 控件名称,提示信息
return value: true/false
*******************************/
function checkCNTxtLength(controller, message) {
var text = controller.value;
if (text.length != 0){
if(text.length < 2) {
alert("查询条件“" + message + "”请尽量不要少于 2
个汉字!");
}
controller.focus();
return false;
}
return true;
}
/******************************** Method: getCNTxtLength(str)
Purpose: 得到字符串的长度,如果字符串中包含有中文/中文符号的话,
算作两个字符
Parameters: 字符串
return value: 字符串的长度
********************************/
function getCNTxtLength(str){
var len; var i; len = 0;
for (i=0;i<str.length;i++){
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return len;
}
1.45 检测输入是否只有字母或数字
/************************************
Method: checkNumOrLet(controller,message)
purpose: 检测输入是否只有字母或数字
54
parameters : 控件名称,提示信息
return value : true/false.
* author by sun_cmei
************************************/
function checkNumOrLet(controller,message)
{
var value=controller.value;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if ((!(value.charAt(i)>="0" && value.charAt(i)<="9"))
&&(!(value.charAt(i)>="a"&&value.charAt(i)<="z"))
&&(!(value.charAt(i)>="A"&&value.charAt(i)<="Z")))
{
alert(message + "为字母或数字");
controller.focus();
return(false);
}
}
}
return true;
}
1.46 检测输入是否只有数字或不详,且输入数值不能过大(不能超过 32767)
/************************************
Method: checkNumberAndUnknown(controller,message)
purpose: 检测输入是否只有数字或不详,且输入数值不能过大(不能超过
32767)
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkNumberAndUnknown(controller,message)
{
var value=controller.value;
var count=0;
if(value == '不详'){
return true;
}
if (
value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
55
{
alert(message + "为不详或 0-9 的数字");
controller.focus();
return(false);
}
}
if ( value.length > 5 )
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 5)
{
if (value > "32767")
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
}
}
return true;
}
1.47 检测输入是否为数字
/************************************
Method: checkNumber(controller,message)
purpose: 检测输入是否为数字
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert(message + "为 0-9 的数字");
controller.focus();
return(false);
56
}
}
/*if ( value.length > 10 )
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 10)
{
if (value > "2147483647")
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
}*/
}
return true;
}
1.48 监测输入是否为数字,且所输入数值不能过大(不能超过 5 位 32767)
/************************************
Method: checkSmallintNumber(controller,message)
purpose: 监测输入是否为数字,且所输入数值不能过大(不能超过 5 位
32767)
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkSmallintNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert(message + "为 0-9 的数字");
controller.focus();
return(false);
}
}
if ( value.length > 5 )
{
57
alert(message + "的数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 5)
{
if (value > "32767")
{
alert(message + "的数字太大,请检查!");
controller.focus();
return false;
}
}
}
return true;
}
1.49 检测输入是否为整形数字,且所输数值不能过大(不能超过 10 位
2147483647)
/************************************
Method: checkIntNumber(controller,message)
purpose: 检测输入是否为整形数字,且所输数值不能过大(不能超过 10
位 2147483647)
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkIntNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert(message + "为 0-9 的数字");
controller.focus();
return(false);
}
}
if ( value.length > 10 )
{
alert(message + "的数字太大,请检查!");
controller.focus();
58
return false;
}
else if (
value.length == 10)
{
if (value > "2147483647")
{
alert(message + "的数字太大,请检查!");
controller.focus();
return false;
}
}
}
return true;
}
1.51 检测输入是否为非零数字,且输入数字不能太大(不能超过 10 位
2147483647)
/************************************
Method: checkNotZeroNumber(controller,message)
purpose: 检测输入是否为非零数字,且输入数字不能太大(不能超过 10 位
2147483647)
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkNotZeroNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert(message + "为 0-9 的数字");
controller.focus();
return(false);
}
}
if ( value.length > 10 )
{
alert(message + "的数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 10)
{
if (value > "2147483647")
{
59
alert(message +"的数字太大,请检查!");
controller.focus();
return false;
}
}
if (
parseInt(value,10)==0)
{
alert(message+"不能等于零");
controller.focus();
return(false);
}
}
return true;
}
1.52 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数
/************************************
Method: checkDecimalNumber(controller,message,befor,after) purpose: 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数 parameters : 控件名称,提示信息,小数点前面的最大位数,小数点后面的最 大位数
return value : true/false.
************************************/
function checkDecimalNumber(controller,message,befor,after){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if ((value.charAt(i)>"9" || value.charAt(i)<"0") &&
value.charAt(i)!="." && value.charAt(i)!=",") {
alert(message + "用小数或整数表示!");
controller.focus();
return(false);
}
}
}
var pos = value.indexOf(".");//小数点位置
if(pos > -1){
if(pos > befor){
alert(message + "的小数点前边位数不能超过"+befor+"位!");
controller.focus();
return false;
}
if(value.length-pos -
1
>
after){
alert(message + "的小数点后边位数不能超过"+after+"位!");
controller.focus();
return false;
60
}
}
else{
if(value.length>befor){
alert(message + "的整数位数不能超过"+befor+"位!");
controller.focus();
return false;
}
}
return true;
}
1.53 可以为负数的数字,数值不能超过 5 位 32767
/************************************
Method: checkMayMinusNumber(controller,message) purpose: 可以为负数的数字,数值不能超过 5 位 32767 parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkMayMinusNumberAndUnknown(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
if(value == '不详'){
return true;
}
for (var i=0;i<value.length;i++)
{
if(i == 0 && value.charAt(0) == "-")//第一位为负号,通过
continue;
if(i == 0 && value.charAt(0) == "-"){
controller.value = value.replace("-","-");
continue;
{
}
if ((value.charAt(i)>"9" || value.charAt(i)<"0"))
alert(message + "为 0-9 的数字");
controller.focus();
return(false);
}
}
if(value.charAt(0) != "-")
{
61
if ( value.length > 5 )
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 5)
{
if (value > "32767")
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
}
}
else
{
if ( value.length > 6 )
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
else if (
value.length == 6)
{
if (value > "-32767")
{
alert("数字太大,请检查!");
controller.focus();
return false;
}
}
}
}
return true;
}
1.54 险情报告编号为四位年份加三位数字
/************************************
Method: checkReportNumber(controller,message) purpose: 险情报告编号为四位年份加三位数字 parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
62
************************************/
function checkReportNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0){
//检测输入是否为是 7 位
if(value.length != 7){
alert(message + "为四位年份加三位数字");
controller.focus();
return(false);
}
//检测所输 7 位是否全为数字
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message + "为四位年份加三位数字");
controller.focus();
return(false);
}
}
//前四位是有效年
var year = value.substring(0,4);
if(parseInt(year)<1900 || parseInt(year)>9999){
alert(message+"前四位年份必须在 1900-9999 之间!!");
controller.focus();
return(false);
}
}
return true;
}
1.55 检验度数控制值是否是数字,并且小于或等于 180;
/************************************
Method:
checkDegree(degController,minController,decController,message)
purpose: 检验度数控制值是否是数字,并且小于或等于 180;
检验分控制值是否是数字,并且小于 60; 检验小数控制值是否是数字
parameters :degController-度数控件名称
minController-分控件名称
decController-小数控件名称
message-提示消息
测试页面: test.jsp
************************************/
63
function checkDegree(degController,minController,decController,message){
if(!checkNumber(degController,message+"度数")
|| !checkNumber(minController,message+"分")
|| !checkNumber(decController,message+"小数")){
return false;
}
if(degController.value>180){
alert("度数不能大于 180!");
degController.focus();
return false;
}
if(minController.value>60){
alert("分数不能大于 60!");
minController.focus();
return false;
}
return true;
}
1.56 删除字符串两侧的空格,返回的是删除两侧空格的字符串
/**
*删除字符串两侧的空格,返回的是删除两侧空格的字符串
* @param str 待处理的字符串
*/
function trim(str){
if(str==null||str=="") return "";
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
};

START 键盘码判断

/**
* 判断是否数字键
* @param keyCode 输入的键值
*/
function isNumber(keyCode){
alert(keyCode);
if (((keyCode >= 48 && keyCode <= 57 )&& window.event.shiftKey == false)
||(keyCode >= 96 && keyCode <= 105 ))
return true;
return false;
}
/**
* 判断是否为光标移动处理
64
* @param keyCode 输入的键值
*/
function isCursorCtrl(keyCode){ if(keyCode >= 33 && keyCode <= 40 ) return true;
return false;
}
/**
* 判断是否为+号
* @param keyCode 输入的键值
*/
function isPlusSign(keyCode){ if(keyCode==187||keyCode==107) return true;
return false;
}
/**
* 判断是否为-号
* @param keyCode 输入的键值
*/
function isSubtractionSign(keyCode){ if(keyCode == 109||keyCode == 189) return true;
return false;
}
/**
* 判断是否为.号
* @param keyCode 输入的键值
*/
function isDotSign(keyCode){ if(keyCode==110 ||keyCode==190) return true;
return false;
}
/**
* 判断是否为 Tab 键
* @param keyCode 输入的键值
*/
function isTab(keyCode){
if(keyCode==9) return true; return false;
}
/**
* 判断是否为回车键
* @param keyCode 输入的键值
*/
function isEnter(keyCode){
65
if(keyCode==13)
return true;
return false;
}
/**
* 判断是否为退格键
* @param keyCode 输入的键值
*/
function isBackspace(keyCode){
if(keyCode==8) return true; return false;
}
/**
* 判断是否为删除键
*/
function isDelete(keyCode){
if(keyCode==46)
return true;
return false;
}
//结束键盘输入判断
/**
* 把回车键转换为 Tab 键
*/
function enterToTab() {
if(window.event.keyCode==13)
window.event.keyCode=9;
}
/**
* 是否为全数字字符串
*/
function isDigitStr(s){
var patrn=/^[0-9]/;
if (!patrn.exec(s)) return false;
return true;
};
1.57 打开模式窗口,窗口居中
/**
* 打开模式窗口,窗口居中
* param:sURL
* param:obj 参数对象,用来向弹出窗口传递参数,其至少包含一个
值:isLogin,标识用户是否已经登录,session 是否已经过期。
66
* param:sStyle 窗口宽度、高度等属性字符串
*/
function openModalDialog(sUrl,obj,sStyle){
if (sStyle=="") sStyle = "scrollbars:no;dialogWidth:280;dialogHeight:100;status:no;center:yes;resizable:no";
if(obj==null) obj = new Object();
obj.isLogin=true; //首先将是否登录标志置为 true
sUrl = sUrl.replace("?","%3f"); sUrl = sUrl.replace("&","%26"); sUrl = sUrl.replace("=","%3d");
var prefix = sUrl.substring(0,1);
if(prefix == ""){
sUrl = "/"+sUrl;
}
var sValue =
showModalDialog(CONTEXT_ROOT+"/js/dialogWrapper.jsp?url="+sUrl,obj,"");
//窗口执行完毕后根据弹出窗口返回的 obj 中 isLogin 属性来判断用户是 否已经登录,如果没有登录则定向到登录界面
//if(!obj.isLogin){
// top.location = CONTEXT_ROOT+"/index.jsp";
//}
return sValue;
}
1.58 打开普通的窗口/**
*打开普通的窗口
* param:url
* param:winName,打开窗口的名称,默认为""
* param: sStyle,打开窗口的显示属性,默认为最大化,无工具栏、无地
址栏
*/
function openWindow(sUrl, winName, sStyle){
if(sUrl==""){
alert(sUrl+"不能为空!");
return false;
}else if(sUrl.substring(0,1)!="/"){
sUrl = "/"+sUrl;
}
if(sStyle==""){
sStyle="location=no,scrollbars=yes,menubar=no,resizable=yes,top=0,left=0,to olbar=no,height="+screen.availHeight+",width="+screen.availWidth;
}
67
sUrl = CONTEXT_ROOT+sUrl;
window.open(sUrl,winName, sStyle);
}
1.59 检验输入的时间段,日期格式 yyyy-MM-dd
/************************************************
function: checkDateSeq
purpose: 检验输入的时间段,日期格式 yyyy-MM-dd
parameters : 起始日期控件名称,终止日期控件名称,formatter 输入日期的格 式
输入值为年,formatter 对应"y";
输入值为月,formatter 对应"ym"; 输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/
function checkDateSeq(qsrqController,zzrqController,formatter,message){
var qsrq=qsrqController.value; var zzrq=zzrqController.value; if(message==null) message="";
if (qsrq.length==0 && zzrq.length!=0){
if(checkDate(zzrqController,formatter,message)){
return true;
}
else{
}
}
zzrqController.focus();
return false;
if (zzrq.length==0 && qsrq.length!=0){
if(checkDate(qsrqController,formatter,message)){
return true;
}
else{
}
}
qsrqController.focus();
return false;
if (zzrq.length!=0 && qsrq.length!=0){
if (!checkDate(qsrqController,formatter,message)){
return false;
}
if (!checkDate(zzrqController,formatter,message)){
return false;
}
68
if (checkDate(qsrqController,formatter,message) &&
checkDate(zzrqController,formatter,message)){
if (format(qsrq)>format(zzrq)){
if(message!=""){
alert(message);
}else{
}
alert(message+"起始日期不能大于终止日期!");
qsrqController.focus();
return false;
}
}
}
return true;
}
//格式为 yyyymmdd function format(str)
{
var yy="",mm="",dd="";
m=0;
j=0;
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){ m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3)
dd=str.substring(j,i);
j=i+1;
}
}
if (mm!="")
mm=add0(mm); if (dd!="") dd=add0(dd);
date = yy + mm +dd;
return (date);
}
//数字检验
function isInt(str){
if(str.length!=0){
69
for (i=0;i<str.length;i++)
if ( str.charAt(i)<'0' || str.charAt(i)>'9')
return false;
}
return true;
}
//月日去 0
function trim0(str)
{
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
result = str.substring(i,j);
return result;
}
//月日加 0
function add0(str)
{
var i,j,result="";
j = str.length;
if (j==1)
result = "0" + str;
else
result = str;
return result;
}
1.60 检验输入的日期 yyyy-MM-dd
/************************************************
function: checkDate
purpose: 检验输入的日期 yyyy-MM-dd
parameters : 日期控件名称,formatter 输入日期的格式 输入值为年,formatter 对应"y";
输入值为月,formatter 对应"ym";
输入值为年月日,formatter 对应"ymd";
return value : TRUE / FALSE
*************************************************/
function checkDate(controller,formatter,message){
var str=trim(controller.value); if(message==null) message=""; controller.value = str;
m=0; j=0; k=0;
70
if (str.length==0){
alert(message+"日期不能为空!");
controller.focus();
return false;
}
for(i=0;i<str.length;i++){ if(str.charAt(i)=="-") k++;
}
if (formatter=="y"){
if (k!=0){
alert(message+"缺少月份和日期!");
controller.focus();
return false;
}
}
if (
formatter=="ym"){
if (k!=1){
alert(message+"缺少日期部分!");
controller.focus();
return false;
}
}
if (
formatter=="ymd"){
if (k!=2){
alert(message+"格式不正确,请按 YYYY-MM-DD 格式输入!");
controller.focus();
return false;
}
}
var yy="",mm="",dd="",temp; for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){
m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3){ dd=str.substring(j,i); if(dd==""){
alert(message+"日期不能为零号!")
controller.focus();
return false;
}
}
71
j=i+1;
}
}
if (yy.length==0)
{
alert(message+"年份不能为空!");
controller.focus();
return false;
}
if(yy.length!=4){
alert(message+"年份必须为四位数字!");
controller.focus();
return false;
}
if (formatter=="ym" || formatter=="ymd")
{
if(mm.length>2||mm.length==1){
alert(message+"月份必须为两位数字!如 01,10");
controller.focus();
return false;
}
}
if (
formatter=="ymd")
{
if(dd.length>2||dd.length==1){
alert(message+"日期必须为两位数字!如 01,10");
controller.focus();
return false;
}
}
yy=trim0(yy); mm=trim0(mm); dd=trim0(dd);
if(!isInt(yy)){
alert(message+"年份必须为数字!");
controller.focus();
return false;
}
if(parseInt(yy)<1900 || parseInt(yy)>9999 ||(yy=="")){
alert(message+"年份必须在 1900-9999 之间!");
controller.focus();
return false;
}
if (formatter=="ym" || formatter=="ymd")
{
72
if(!isInt(mm)){
alert(message+"月份必须为数字!");
controller.focus();
return false;
}
if(parseInt(mm)>12 || parseInt(mm)<1||(mm=="")){
alert(message+"月份必须在 1-12 之间!");
controller.focus();
return false;
}
}
if (formatter=="ymd")
{
if(!isInt(dd)){
alert(message+"日期必须为数字!");
controller.focus();
return false;
}
if (dd=="")
{
alert(message+"日期不能为 0!");
controller.focus();
return false;
}
if((mm=="1" || mm=="3" || mm=="5" || mm=="7" || mm=="8" || mm=="10" ||
mm=="12") && parseInt(dd)>31){
alert(message+"该月最大为 31 天!");
controller.focus();
return false;
}
if(( mm=="4" || mm=="6" || mm=="9" || mm=="11") && parseInt(dd)>30){
alert(message+"该月最大为 30 天!");
controller.focus();
return false;
}
if(mm=="2"){
// alert((parseInt(yy)%4));
if((parseInt(yy)%4)==0){
if(parseInt(dd)>29){
alert(message+"该月日期不能大于 29!");
controller.focus();
return false;
}
}
else{
73
if(parseInt(dd)>28){
alert(message+"该月日期不能大于 28!");
controller.focus();
return false;
}
}
}
}
return true;
}
1.61 用下拉框显示月、日,日下拉框根据年月确定
//用下拉框显示月、日,日下拉框根据年月确定
function DaysInMonth(WhichMonth, WhichYear)
{
var DaysInMonth = 31;
if (WhichMonth == "04" || WhichMonth == "06" || WhichMonth == "09" || WhichMonth == "11") DaysInMonth = 30;
if (WhichMonth == "02" && (WhichYear/4) != Math.floor(WhichYear/4)) DaysInMonth = 28;
if (WhichMonth == "02" && (WhichYear/4) == Math.floor(WhichYear/4)) DaysInMonth = 29;
return DaysInMonth;
}
//function to change the available days in a months
//用于根据年月显示日期下拉框长度,供 dateTag 标签使用,不要删除
function ChangeOptionDays(yearObject,monthObject,daysObject){
year = trim(yearObject.value);
if(monthObject==null || daysObject==null){//如果只有年份或只有日期
if (year=="")
{
alert("请先输入年份!");
yearObject.focus();
return false;
}
if (
year.length==0)
{
alert("年份不能为空!");
yearObject.focus();
return false;
}
if(year.length!=4){
alert("年份必须为四位数字!");
74
yearObject.focus();
return false;
}
if(!isInt(year)){
alert("年份必须为数字!");
yearObject.focus();
return false;
}
if(parseInt(year)<1900 || parseInt(year)>9999 ||(year=="")){
alert("年份必须在 1900-9999 之间!");
yearObject.focus();
return false;
}
}else{
month = monthObject[monthObject.selectedIndex].text;
if (month!="")
{
if (year=="")
{
alert("请先输入年份!");
yearObject.focus();
return false;
}
if (
year.length==0)
{
alert("年份不能为空!");
yearObject.focus();
return false;
}
if(year.length!=4){
alert("年份必须为四位数字!");
yearObject.focus();
return false;
}
if(!isInt(year)){
alert("年份必须为数字!");
yearObject.focus();
return false;
}
if(parseInt(year)<1900 || parseInt(year)>9999 ||(year=="")){
alert("年份必须在 1900-9999 之间!");
yearObject.focus();
return false;
}
}
DaysForThisSelection = DaysInMonth(month, year);
75
CurrentDaysInSelection = daysObject.length;
if (CurrentDaysInSelection-1 > DaysForThisSelection)
{
for (i=0; i<(CurrentDaysInSelection-1-DaysForThisSelection); i++)
{
daysObject.options[daysObject.options.length - 1] = null
}
}
if (DaysForThisSelection > CurrentDaysInSelection-1)
{
for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection+1); i++)
{
NewOption = new
Option(daysObject.options.length,daysObject.options.length);
daysObject.add(NewOption);
}
}
if (daysObject.selectedIndex < 0) daysObject.selectedIndex == 0;
}
return true;
}
1.62 检验租赁合同号为 4 位年份+2 位月份+本月合同的顺序号 2 位
/************************************ Method: checkZlhth()
purpose: 检验租赁合同号为 4 位年份+2 位月份+本月合同的顺序号 2 位
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkZlhth(controller,message){
var value=controller.value;
if (value.length!=0 ){ if(value.length!=8){//校验 8 位 alert(message+"为 8 位数字!");
controller.focus();
return(false);
}
for(var i=0;i<8;i++)//校验全为数字
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert(message + "为 8 位数字!");
controller.focus();
return(false);
}
76
}
//校验年
var year = parseInt(value.substring(0,4),10);
if(year<2000 || year >2050)
{
alert(message + "前四位代表年,在 2000-2050 之间!");
controller.focus();
return(false);
}
//校验月份
var month = parseInt(value.substring(4,6),10);
if(month < 1 || month > 12)
{
alert(message + "五六位代表月份,在 01-12 之间!");
controller.focus();
return(false);
}
}
return true;
}
//int 型最大值
var INTMAXVALUE=2147483647;
//long 类型最大值
var LONGMAXVALUE=9223372036854775807;
//返回换算箱数
function getHsx(xxdm){
var dd = parseInt(xxdm)/20;
return dd;
}
1.63 用于多行校验,校验每一行,每一列值是否为空,传入的必须是
/************************************
Method: chkRows(controlerID,lineNum)
purpose: 用于多行校验,校验每一行,每一列值是否为空,传入的必须是
tbody
parameters : controlerID tbody 的 id 值
lineNum 为从表格的第几行开始算起
return value : true/false. condition: controller:must
***********************************
*/
function chkRows(controlerID,lineNum,ignore){
77
element = document.getElementById(controlerID);
if(element.nodeName != "TBODY"){
alert("传入的必须是 Tbody!");
}
if(element.hasChildNodes()){
var m =0;
var n =0;
var controler=null;
var controlerFirst=null;
var flag3=false; var flag4=false; var flag5=true;
for(var i=0;i<element.childNodes.length;i++){//element.childNodes.length trElement = element.childNodes.item(i);
if(trElement.hasChildNodes()){
var flag=false;
var flag2=false;
for(var j=0;j<trElement.childNodes.length;j++){//trElement.childNodes.length tdElement = trElement.childNodes.item(j);
if(tdElement.hasChildNodes()){
for(var k=0;k<tdElement.childNodes.length;k++){//tdElement.childNodes.length
childNode = tdElement.childNodes.item(k);
if(childNode.nodeType=="1"){//如果是 element
if((childNode.tagName=="INPUT") ||
childNode.tagName=="SELECT"){
y=0;y<ignoreArray.length;y++){
var ignoreFlag=false;
if(ignore!=null){
var ignoreArray =ignore.split(",");
for(var
if(childNode.id.indexOf(ignoreArray[y])>-1){
if( (childNode.tagName=="SELECT"&&childNode.value!="")){
}else
ignoreFlag=true;
break;
if(childNode.tagName=="INPUT"){
ignoreFlag=true;
break;
}
}
}
}
if(ignoreFlag){continue;}
78
if(childNode.type.toUpperCase()=="TEXT"||
childNode.tagName=="SELECT"){
if(childNode.value==""||parseInt(childNode.value,10)=="0"){
if(!flag){ flag=true; flag3=true; m =
trElement.rowIndex+1-parseInt(lineNum,10);
tdElement.cellIndex+1; controler=childNode; if(flag5){controlerFirst=childNode;flag5=false;}
}else{
n =
}
if(!flag2){ flag2=true; flag4=true;
}
}
}
}
}
}
if(flag&&flag2){
alert("第"+m+"行 [ "+controler.title+" ] 不能为空!");
controler.focus();
flag=false;
flag2=false;
return false;
}
}
}
}
}
if(flag3&&!flag4){
alert("请输入命令细表内容!");
controlerFirst.focus();
return false;
}
}
return true;
}
79
1.64 检查某列得多值中是否存在重复值
/**
Method: chkLjcz(prefix,flag,msg,col) purpose: 检查某列得多值中是否存在重复值 parameters : perfix 某列多值 styleId 的前缀
flag 隐藏域的 id 名称
msg 显示信息
col 如果是多栏显示,此参数则为栏数,如果是一
栏,则空
return value : true/false. condition: controller:must
*/
function chkLjcz(prefix,flag,msg,col){
with(document.forms[0]){
var iCount = document.all[flag];
var selObj1=null;
var selObj2=null;
for(var i=0;i<iCount.length;i++){ selObj1=document.getElementById(prefix+iCount[i].value); if(selObj1.value!=""){
for(var j=i+1;j<iCount.length;j++){
selObj2=document.getElementById(prefix+iCount[j].value);
if(selObj1.value==selObj2.value){
if(col!=null){
var m=parseInt(i/col);
var n=parseInt(j/col);
alert("第"+(m+1)+"行与第
"+(n+1)+"行的 [ "+msg+" ] 相同!");
"+(j+1)+"行的 [ "+msg+" ] 相同!");
}else{
}
alert("第"+(i+1)+"行与第
selObj1.focus();
return false;
}
}
}
}
return true;
}
}
80
1.65 检查某列得多值与某一值得比较是否相同,例如多个到站路局与一个发站
路局是否相同
/**
Method: chkSslj(ljdm,xcljdmPrefix,xczdmPrefix,flag,msg1,masg2) purpose: 检查某列得多值与某一值得比较是否相同,例如多个到站路局与 一个发站路局是否相同
parameters : ljdm 某一个值
卸车路局代码 代码
return value : true/false. condition: controller:must
*/
xcljdmPrefix 某列多值 styleId 的前缀,一般是隐藏的
xczdmPrefix 某列多值 styleId 的前缀,一般是卸车站
flag 隐藏域的 id 名称 msg1 显示信息 1 msg2 显示信息 2
function chkSslj(ljdm,xcljdmPrefix,xczdmPrefix,flag,msg1,masg2){
with(document.forms[0]){
var iCount = document.all[flag];
var selObj=null;
for(var i=0;i<iCount.length;i++){
selObj=document.getElementById(xcljdmPrefix+iCount[i].value);
if(selObj.value!=""&&selObj.value==ljdm.value){
alert("第"+(i+1)+"行的 ["+msg1+" ] 与 [ "+masg2+" ]
相同,请检查!");
document.getElementById(xczdmPrefix+iCount[i].value).focus();
return false;
}
}
return true;
}
}
1.66 检查两多值列是否相同,例如同一行的装车路局是否与卸车站所属路局是
否相同
/** Method:
chkZclj_Xclj(zcljdmPrefix,xcljdmPrefix,xczdmPrefix,flag,msg1,masg2)
81
purpose: 检查两多值列是否相同,例如同一行的装车路局是否与卸车站所 属路局是否相同
parameters : zcljdmPrefix 某列多值 styleId 的前缀,一般是隐藏的装车路局代码
卸车路局代码
return value : true/false. condition: controller:must
*/
xcljdmPrefix 某列多值 styleId 的前缀,一般是隐藏的
flag 隐藏域的 id 名称 msg1 显示信息 1 msg2 显示信息 2
function chkZclj_Xclj(zcljdmPrefix,xcljdmPrefix,flag,msg1,masg2){
with(document.forms[0]){
var iCount = document.all[flag];
var selObjZclj=null;
var selObjXclj = null;
for(var i=0;i<iCount.length;i++){ selObjZclj=document.getElementById(zcljdmPrefix+iCount[i].value); selObjXclj=document.getElementById(xcljdmPrefix+iCount[i].value);
if(selObjXclj.value!=""&&selObjZclj.value==selObjXclj.value){
alert("第"+(i+1)+"行的 ["+msg1+" ] 与 [ "+masg2+" ]
相同,请检查!");
}
}
selObjZclj.focus();
return false;
return true;
}
}
1.67 检查箱数与组数
箱数和组数不能同时为空,当选择箱型为 40 英尺时,1 组最多 1 个集装箱,20
英尺为 2 个集装箱,
/**
Method: chkXs(xczdm,xxdm,zs,sl,flag)
purpose: 检查箱数与组数
箱数和组数不能同时为空,当选择箱型为 40 英尺时,1 组最多 1 个集装箱,20
英尺为 2 个集装箱,
10 吨箱为 4 个,1 吨箱不超过 64 个
parameters : xczdmPrefix 卸车站列的 id 前缀
xxdmPrefix 箱型代码列的 id 前缀
82
return value : true/false. condition: controller:must
*/
zsPrefix 组数列的 id 前缀 slPrefix 数量列的 id 前缀 flag 隐藏域的 id 名称
function chkXs(xczdmPrefix,xxdmPrefix,zsPrefix,slPrefix,flag){
with(document.forms[0]){
var iCount = document.all[flag];
for(var i=0;i<iCount.length;i++){
if(document.getElementById(xczdmPrefix+iCount[i].value).value!=""){
var zsValue=document.getElementById(zsPrefix+iCount[i].value).value;
var slValue=document.getElementById(slPrefix+iCount[i].value).value
var xxdmValue =
document.getElementById(xxdmPrefix+iCount[i].value).value;
if(zsValue==""){
alert("组数不能为空!");
document.getElementById(zsPrefix+iCount[i].value).focus();
return false;
}
if(slValue==""){
alert("箱数不能为空!");
document.getElementById(slPrefix+iCount[i].value).focus();
return false;
}
var returnStr =
checkXsZs(xxdmValue,slValue,zsValue);
if(returnStr!=""){
alert(returnStr+"!");
document.getElementById(zsPrefix+iCount[i].value).focus();
return false;
}
}
}
return true;
}
}
1.68 检查箱数与组数
箱数和组数不能同时为空,当选择箱型为 40 英尺时,1 组最多 1 个集装箱,20
英尺为 2 个集装箱,
83
/**
Method: chkZcz_Xcz(zczPrefix,xczPrefix,msg1,msg2,flag)
purpose: 检查箱数与组数
箱数和组数不能同时为空,当选择箱型为 40 英尺时,1 组最多 1 个集装箱,20
英尺为 2 个集装箱,
parameters : zczPrefix 某列多值 styleId 的前缀,一般是的装车站代码前缀
xczPrefix 某列多值 styleId 的前缀,一般是卸车站代码
前缀
return value : true/false. condition: controller:must
*/
flag 隐藏域的 id 名称 msg1 显示信息 1 msg2 显示信息 2
function chkZcz_Xcz(zczPrefix,xczPrefix,msg1,msg2,flag){
with(document.forms[0]){
var iCount=document.all[flag];
for(var i=0;i<iCount.length;i++){ zczObj=document.getElementById(zczPrefix+iCount[i].value); xczObj=document.getElementById(xczPrefix+iCount[i].value);
if(zczObj.value!=""&&xczObj.value!=""&&zczObj.value==xczObj.value){
alert("第"+(i+1)+"行[ "+msg1+" ] 与 [ "+msg2+" ] 相
同!");
zczObj.focus();
return false;
}
for(var j=i+1;j<iCount.length;j++){
zczObjNext =
document.getElementById(zczPrefix+iCount[j].value);
xczObjNext =
document.getElementById(xczPrefix+iCount[j].value);
if(zczObj.value!=""&&xczObj.value!=""&&zczObj.value==zczObjNext.value
&&xczObj.value==xczObjNext.value){
alert("第"+(i+1)+"条记录与第"+(j+1)+"条记录
重复!");
}
zczObj.focus();
return false;
}
}
return true;
}
}
84
1.69 检查箱数与组数
箱数和组数不能同时为空,当选择箱型为 40 英尺时,1 组最多 1 个集装箱,20
英尺为 2 个集装箱,
/** Method:
chkZcz_Xcz_Other(zczPrefix,xczPrefix,otherPrefix,msg1,msg2,flag) purpose: 检查多列多值,同一行装车与卸车是否相同,不同行装车与装 车、卸车与卸车、other 字段集是否相同
parameters : zczPrefix 某列多值 styleId 的前缀,一般是的装车站代码前缀
xczPrefix 某列多值 styleId 的前缀,一般是卸车站代码
前缀
return value : true/false. condition: controller:must
*/
otherPrefix 其他列得前缀,用“,”隔开
flag 隐藏域的 id 名称
msg1 显示信息 1 msg2 显示信息 2
function chkZcz_Xcz_Other(zczPrefix,xczPrefix,otherPrefix,msg1,msg2,flag){
with(document.forms[0]){
var iCount=document.all[flag];
var colArray =null;
var objArray= new Array();
var objArrayNext= new Array();
var ifFlag = true;
colArray = otherPrefix.split(",");
for(var i=0;i<iCount.length;i++){ zczObj=document.getElementById(zczPrefix+iCount[i].value); xczObj=document.getElementById(xczPrefix+iCount[i].value); for(var m=0;m<colArray.length;m++){
objArray[m]=document.getElementById(colArray[m]+iCount[i].value);
}
if(zczObj.value!=""&&xczObj.value!=""&&zczObj.value==xczObj.value){
alert("第"+(i+1)+"行[ "+msg1+" ] 与 [ "+msg2+" ] 相
同!");
zczObj.focus();
return false;
}
for(var j=i+1;j<iCount.length;j++){
zczObjNext =
document.getElementById(zczPrefix+iCount[j].value);
xczObjNext =
document.getElementById(xczPrefix+iCount[j].value);
for(var n=0;n<colArray.length;n++){
85
objArrayNext[n]=document.getElementById(colArray[n]+iCount[j].value);
}
var ifFlag = true;
for(var s=0;s<objArrayNext.length;s++){
if(objArray[s].value!=""&&objArray[s].value==objArrayNext[s].value){
ifFlag=ifFlag&&(objArray[s].value!=""&&objArray[s].value==objArrayNext
[s].value);
}else if(objArray[s].value!=""&&objArray[s].value!=objArrayNext[s].value){
ifFlag=false;
}
}
if(zczObj.value!=""&&xczObj.value!=""&&zczObj.value==zczObjNext.value
&&xczObj.value==xczObjNext.value&&ifFlag){
alert("第"+(i+1)+"条记录与第"+(j+1)+"条记录
重复!");
}
zczObj.focus();
return false;
}
}
return true;
}
}
1.70 检查单列多值不能超过一定得长度
/**
Method: chkLength(controller,msg,flag,maxLength)
purpose: 检查单列多值不能超过一定得长度
parameters : controller 某列多值 styleId 的前缀,比如备注
msg 显示信息
flag 隐藏域的 id 名称
maxLength 最大长度
return value : true/false. condition: controller:must
*/
function chkLength(controller,msg,flag,maxLength){
with(document.forms[0]){
var iCount=document.all[flag];
for(var i=0;i<iCount.length;i++){ zczObj=document.getElementById(controller+iCount[i].value); zczObj.value=trim(zczObj.value);
86
if(getCNTxtLength(zczObj.value)>maxLength){
alert("第"+(i+1)+"行 [ "+msg+" ] 不能超过
"+maxLength+"字符!");
}
zczObj.focus();
return false;
}
return true;
}
}
1.71 取字符串长度(不包含两端的空格
/************************************
function: getCNTxtLength(controller) purpose: 取字符串长度(不包含两端的空格) parameters : 字符串
return value : int
************************************/
function getCNTxtLength(controller) {
var len; var i; len = 0;
for (i = 0 ;i < controller.length; i++) {
if (controller.charCodeAt(i) > 255)
len += 2;
else
}
len++;
return len;
}
function replaceAll(number){
return number.replace(new RegExp(",","g"),"");
}
1.72 向表格中添加一行
/**
*向表格中添加一行
* param:formId 数据表格所在表单的的 id
* param:tbodyId 数据所在表格 tbody 元素的 id
* param:baseControllerId 新加行的复制依据数据块所在的 HTML 控件
ID,如果没有指定,则直接取指定 TBODY 区域的第一行
*/
function addRow(formId, tbodyId, baseControllerId){
87
if(formId==null || formId==""){
alert("您必须指定 FORM 的 ID!");
return;
}
if(tbodyId==null || tbodyId==""){
alert("您必须指定 TBODY 的 ID!");
return;
}
oTbody = document.getElementById(tbodyId);
var baseController = null;
if(baseControllerId!=null && baseControllerId.trim()!=""){
baseController = document.getElementById(baseControllerId);
}
var oTr = null;
var isTr = false;
var oParent = null;
if(baseController==null){//如果没有指定隐藏区块作为复制的依
据,则根据 tbody 的第一行来复制
oParent = oTbody;
}else{
}
oParent = baseController;
while(!isTr){
oTr = oParent.firstChild;
if(oTr!=null && oTr.tagName =="TR"){
isTr=true;
}else if(oTr!=null){
oParent = oTr;
}else{//退出
isTr = true;
}
}
new_idx = oTbody.childNodes.length;//新添加行的序号.
oTrNew = document.createElement("TR");
for(var i=0;i<oTr.childNodes.length;i++){
oTd = oTr.childNodes[i];
//alert("oTd="+oTd+" nodeName="+oTd.nodeName+" tagName="+oTd.tagName+" nodeType="+oTd.nodeType+" name="+oTd.getAttribute("name"));
if(oTd.nodeType==1){//如果是 HTML 标签,不是普通的文本
oTdNew = oTd.cloneNode(true);
//alert("oTdNew.nodeType="+oTdNew.nodeType+" || nodeName="+oTdNew.tagName+" || nodeTag="+oTdNew.tagName+" || name="+oTdNew.getAttribute("name"));
88
if(oTdNew.nodeName=="TD"){//如果是 TD
for(var j=0;j<oTdNew.childNodes.length;j++){
oChild = oTdNew.childNodes[j];
//alert("oChild.nodeName="+oChild.nodeName+" oChild.tagName="+oChild.tagName);
if(oChild.nodeType ==1&&
oChild.nodeName!="SCRIPT"){//如果是 HTML 标签,不是普通的文本
oChildName =
oChild.getAttribute("name"); oChild.getAttribute("id"); oChildId.substr(0,oChildId.length-2)
oChildId =
var id =
oChildId = id+new_idx;
//alert("oChildId="+ oChildId +"
oChildName="+oChildName+" oChildValue="+oChild.getAttribute("value"));
oChildName = oChildName.substring(0,oChildName.indexOf("[")+1)+new_idx+oChildName.substri ng(oChildName.indexOf("]"));
//alert("oChildName="+oChildName);
oChild.setAttribute("id",oChildName);
oChild.setAttribute("name",oChildName);
}
}else{
}
oTdNewName = oTdNew.getAttribute("name");
if(oTdNewName!=null&& oTdNewName!=""){
oTdNewName =
oTdNewName.substring(0,oTdNewName.indexOf("[")+1) + new_idx +
oTdNewName.substring(oTdNewName.indexOf("]")); oTdNewName.setAttribute("id",oTdNewName); oTdNewName.setAttribute("name",oTdNewName);
//alert("xxxxxxxxxx="+oTdNbew.getAttribute("name")+" dddd
="+oTdNew.getAttribute("value"));
}
}
oTrNew.appendChild(oTdNew);
}else{//如果是普通文本则直接 copy
oTrNew.appendChild(oTd);
}
}
89
oTbody.appendChild(oTrNew);
addValidator(formId, oTrNew);
}
1.73 将添加的输入框元素和 Validator 进行绑定。
/**
*将添加的输入框元素和 Validator 进行绑定。
* param:formId 数据表格所在表单的的 id
* param:oTr 新添加的表格行对象
*/
function addValidator(formId, oTr){
var validatorGroup = document.forms[formId].validatorGroup;
for(var i=0;i<oTr.childNodes.length;i++){
oTd = oTr.childNodes[i];
//alert("oTd="+oTd+" nodeName="+oTd.nodeName+" tagName="+oTd.tagName+" nodeType="+oTd.nodeType+" name="+oTd.getAttribute("name"));
if(oTd.nodeType==1){//如果是 HTML 标签,不是普通的文本
//alert("oTd.nodeType="+oTd.nodeType+" || nodeName="+oTd.tagName+" || nodeTag="+oTd.tagName+" || name="+oTd.getAttribute("name"));
if(oTd.nodeName=="TD"){//如果是 TD
for(var j=0;j<oTd.childNodes.length;j++){
oChild = oTd.childNodes[j];
//alert("oChild.nodeName="+oChild.nodeName+" oChild.tagName="+oChild.tagName);
HTML 标签,不是普通的文本
oChild.getAttribute("id"); oChildId==""){ oChild.getAttribute("name");
oChild.getAttribute("valid");
getValidatorJSClassName(validator);
getValidatorFormat(validator);
if(oChild.nodeType ==1){//如果是
oChildId =
if(oChildId==null ||
oChildId =
}
validator =
if(validator!=null){
className =
format =
90
oChild.getAttribute("empty");
var isEmpty =
if(isEmpty=="true"){
isEmpty = true;
}else{
}
isEmpty = false;
oChild.getAttribute("scope");
var scope =
if(scope==null){
scope = "";
oChild.getAttribute("title");
}
var title =
if(title==null) title="";
if(className=="DecimalValidator"){
validatorGroup.add(new
DecimalValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="IntegerValidator"){
validatorGroup.add(new
IntegerValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="DateValidator"){
validatorGroup.add(new
DateValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="DigitValidator"){
validatorGroup.add(new
DigitValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="EmailValidator"){
validatorGroup.add(new
EmailValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="IdcardValidator"){
validatorGroup.add(new
IdcardValidator(document.all[oChildId],title,isEmpty,format,scope));
}else
if(className=="PostcodeValidator"){
validatorGroup.add(new
PostcodeValidator(document.all[oChildId],title,isEmpty,format,scope));
91
if(className=="TelephoneValidator"){
}else
validatorGroup.add(new
TelephoneValidator(document.all[oChildId],title,isEmpty,format,scope));
}
}
}
}
}else{
oTdNewName = oTd.getAttribute("name");
if(oTdNewName!=null&& oTdNewName!=""){
oTdNewName = oTdNewName.substring(0,oTdNewName.indexOf("[")+1) + new_idx + oTdNewName.substring(oTdNewName.indexOf("]"));
oTdNewName.setAttribute("name",oTdNewName);
}
}
}
}
}
1.74 根据<common:text>标签展示的<input validator="decimal(16,2+)">的
validator 属性获取校验器类名(DecimalValidator)
/**
*根据<common:text>标签展示的<input validator="decimal(16,2+)">的
validator 属性获取校验器类名(DecimalValidator)
*/
function getValidatorJSClassName(validatorName){
if(validatorName==null){
alert("validatorName 不能为 null!");
}
var indexStart = validatorName.indexOf("(");
if (indexStart > 0){
validatorName = validatorName.substring(0, indexStart);
}
return validatorName.substring(0,1).toUpperCase() + validatorName.substring(1)
+ "Validator";
}
/**
92
* 根据<common:text>标签展示的<input validator="decimal(16,2+)">的
validator 属性获取校验的格式(16,2+)
*/
function getValidatorFormat(validatorName){
if(validatorName==null){
alert("validatorName 不能为 null!");
}
var indexStart = validatorName.indexOf("("); var indexEnd = validatorName.indexOf(")"); if(indexEnd>indexStart&&indexStart>0){
return validatorName.substring(indexStart+1,indexEnd);
}else{
return "";
}
}
1.75 删除一行
/**
* 删除一行
* param:tbodyId 数据所在表格 tbody 元素的 id
* param:controller 点击事件所在的控件,可能为按钮,也可能为其他
html 控件
*/
function delRow(tbodyId,controller){
if(tbodyId==null || tbodyId==""){
alert("您必须指定 TBODY 的 ID");
return;
}
var nodeName = controller.nodeName; var oTr = controller; while(nodeName!="TR"){
oTr = oTr.parentNode;
nodeName = oTr.nodeName;
}
oTbody = document.getElementById(tbodyId);
rowCount = oTbody.childNodes.length;//删除后表格数据总行数
curIdx = oTr.rowIndex;//当前行的行号
oTbody.removeChild(oTr);
//修改被删除的 TR 后面的 TR 内的元素的 name 和 ID 属性。
var newIdx=curIdx;
93
for(var i=curIdx-1;i<rowCount-1;i++){
sibingTr = oTbody.childNodes[i];
//alert("sibingTr="+sibingTr+" sibingTr.nodeName="+sibingTr.nodeName+" "+sibingTr.rowIndex+" newIdx="+newIdx);
for(var j=0;j<sibingTr.childNodes.length;j++){
oTd = sibingTr.childNodes[j];
if(oTd.nodeType==1 && oTd.nodeName=="TD"){
for(var k=0;k<oTd.childNodes.length;k++){ oChild = oTd.childNodes[k]; if(oChild.nodeName!="SCRIPT" &&
oChild.nodeName!="#text" && oChild.nodeName!="A"){
childName =
oChild.getAttribute("name");
if(childName!=null){
childName =
childName.substring(0,childName.indexOf("[")+1) + (newIdx-1) +
childName.substring(childName.indexOf("]"));
oChild.setAttribute("name",childName);
oChild.getAttribute("id");
}
childId =
if(childId!=null){
childId =
childId.substring(0,childId.indexOf("[")+1) + (newIdx-1) +
childId.substring(childId.indexOf("]"));
oChild.setAttribute("id",childId);
}
}
}
}
}
newIdx = newIdx + 1;
}
}
1.76 根据箱型,校验箱数与组数的值是否符合规定
/*********************************** Method: checkXsZs(xxdm,xs,zs)
puerpose: 根据箱型,校验箱数与组数的值是否符合规定
parameters: 箱型代码、箱数、组数,此三项都为必输项
return:校验通过返回“”,否则返回出错信息
94
************************************/
function checkXsZs(xxdm,xs,zs){
var jzxCount = parseInt(xs,10);
var count = parseInt(zs,10);
var xx = xxdm;
if(count == 0 && jzxCount == 0){
return "箱数与组数不能同时为 0!";
}
if((count==0 && jzxCount!=0) || (count!=0 && jzxCount==0)){
return "";
}
var max = 0;
if(xx == "50"){
max = count*1;
if(jzxCount > max){
return count+"组四十八英尺箱最多有"+max+"个集装箱!";
}
}
else if(xx == "40"){ max = count*1; if(jzxCount > max){
return count+"组四十英尺箱最多有"+max+"个集装箱!";
}
}
else if(xx == "20"){ max = count*2; if(jzxCount > max){
return count+"组二十英尺箱最多有"+max+"个集装箱!";
}
}
else if(xx == "10"){ max = count*4; if(jzxCount > max){
return count+"组十吨箱最多有"+max+"个集装箱!";
}
}
else if(xx == "01"){
max = count*64;
if(jzxCount > max){
return count+"组一吨箱最多有"+max+"个集装箱!";
}
else{
}
}
return "没有此箱型!";
return "";
}
95
1.77 删除字符串两侧的空格
/*************************
**
**
**
*******************************/
//删除字符串两侧的空格
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
1.78 检验单个集装箱箱号为 4 位字母+7 位数字
/************************************ Method: checkJzxxh()
purpose: 检验单个集装箱箱号为 4 位字母+7 位数字
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkJzxxh(controller,message){
var value=trim(controller.value);
if (value.length!=0 ){
if(value.length!=11 && value.length!=10){
alert(message+"为 4 位字母+7 位数字");
if(controller.type != "hidden")controller.focus();
return(false);
}
var xzdm = value.substring(0,4).toUpperCase();
for (var i=0;i<4;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A")) && xzdm != 'TJ1U'){
alert(message+"为 4 位字母+7 位数字");
if(controller.type != "hidden")controller.focus();
return(false);
}
}
for (var i=4;i<value.length;i++){
if( value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message+"为 4 位字母+7 位数字");
if(controller.type != "hidden")controller.focus();
return(false);
}
}
96
var checkNoBit = value.toUpperCase().substring(0,10);//集装箱箱号的前十 位
var checkBit = "";
if (value.length==11)
{
checkBit = value.substring(10,11);
}
var j,checkIntBit;
var sum = 0;//累加之和
for(var i=0;i<10;i++)
{
switch (checkNoBit.charAt(i))
{
case 'A':{j=10;break;}
case 'B':{j=12;break;} case 'C':{j=13;break;} case 'D':{j=14;break;} case 'E':{j=15;break;} case 'F':{j=16;break;} case 'G':{j=17;break;}
case 'H':{j=18;break;}
case 'I':{j=19;break;}
case 'J':{j=20;break;}
case 'K':{j=21;break;}
case 'L':{j=23;break;} case 'M':{j=24;break;} case 'N':{j=25;break;} case 'O':{j=26;break;} case 'P':{j=27;break;} case 'Q':{j=28;break;} case 'R':{j=29;break;} case 'S':{j=30;break;} case 'T':{j=31;break;} case 'U':{j=32;break;} case 'V':{j=34;break;} case 'W':{j=35;break;} case 'X':{j=36;break;} case 'Y':{j=37;break;} case 'Z':{j=38;break;}
default:j=parseInt(checkNoBit.charAt(i));
} j=j*(Math.pow(2, i)); sum=sum+j;
}
checkIntBit=sum%11;
if(checkIntBit == 10) checkIntBit = 0;
if (value.length==11)//用户输入 11 位,校验最后一位
{
if(checkIntBit != checkBit)
97
{
alert(message+"最后一位校验位不正确!");
if(controller.type != "hidden")controller.focus();
return(false);
}
}
else{//用户输入 10 位,填写最后一位
value = value.substring(0,10) + checkIntBit;
}
}
upValue = value.toUpperCase();
controller.value = upValue;
return true;
}
1.79 检验多个集装箱箱号为 4 位字母+7 位数字
/************************************ Method: checkAllJzxxh()
purpose: 检验多个集装箱箱号为 4 位字母+7 位数字
parameters : 控件名称,提示信息,箱数
return value : true/false.
************************************/
function checkAllJzxxh(controller,message,xsController){
with(document.forms[0]){
var controllerArray = document.all(controller);
var rowCount=1;
var allStr="";
var xhCount=0;
var firstController=null;
if(controllerArray[0]!=null){
rowCount = controllerArray.length;
firstController=controllerArray[0];
for(var i=0;i<controllerArray.length;i++){
allStr+=controllerArray[i].value;
}else{
}
}
allStr=allStr.replace(new RegExp(";","g"),",");
allStr=trim(allStr.substring(0,allStr.length-1));
firstController=controllerArray;
allStr = trim(controllerArray.value);
for(var n=0;n<rowCount;n++){
var value2=null;
98
var tempController=null; if(rowCount==1){ value2=trim(controllerArray.value); tempController = controllerArray;
}else{
value2=trim(controllerArray[n].value);
tempController=controllerArray[n]
}
if (value2.length!=0 ){
xhCount = allStr.split(",").length;
var longtn = value2.length;
var theLast = value2.substring(longtn -1,longtn);
var msg = "请按照说明的格式输入:/r/n 箱号应为四位字母加
七位/"0/"--/"9/"的数字/r/n 箱号之间用半角','隔开,最后以半角';'结束!";
if(longtn==1&& value2== ';')
{
");
alert("[ "+message+" ] 请按照说明的格式输入箱号!
tempController.focus();
return false;
}
if(theLast != ';')
{
以半角';'结束!");
}
alert("[ "+message+" ] 请按照说明的格式输入:最后
tempController.focus();
return false;
if(longtn>12&&value2.indexOf(",")<0){
alert("[ "+message+" ] 请按照说明的格式输入:/r/n 箱
号应为四位字母加七位/"0/"--/"9/"的数字/r/n 箱号之间用半角','隔开!");
tempController.focus();
return false;
}
var xhArray = value2.substring(0,longtn -1).split(",");
for(var m=0;m<xhArray.length;m++){
value=xhArray[m];
if (value.length!=0 ){
if(value.length!=11 && value.length!=10){
alert(message+" [ "+value+"] "+msg);
if(tempController.type !=
"hidden")tempController.focus();
return(false);
}
99
var xzdm = value.substring(0,4).toUpperCase();
for (var i=0;i<4;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z"))
&& (!(value.charAt(i)<="Z" && value.charAt(i)>="A")) && xzdm != 'TJ1U'){ alert(message+" [ "+value+"] "+msg); if(tempController.type !=
"hidden")tempController.focus();
}
return(false);
}
"+msg);
for (var i=4;i<value.length;i++){
if( value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message+" [ "+value+"]
if(tempController.type !=
"hidden")tempController.focus();
}
return(false);
}
if(allStr.indexOf(value)!=allStr.lastIndexOf(value)){
alert(message+" [ "+value+"] 重复!");
if(tempController.type !=
"hidden")tempController.focus();
}
return(false);
var checkNoBit =
value.toUpperCase().substring(0,10);//集装箱箱号的前十位
var checkBit = "";
if (value.length==11)
{
checkBit = value.substring(10,11);
}
var j,checkIntBit;
var sum = 0;//累加之和
for(var i=0;i<10;i++)
{
switch (checkNoBit.charAt(i))
{
case 'A':{j=10;break;}
case 'B':{j=12;break;} case 'C':{j=13;break;} case 'D':{j=14;break;} case 'E':{j=15;break;} case 'F':{j=16;break;} case 'G':{j=17;break;}
case 'H':{j=18;break;}
case 'I':{j=19;break;}
case 'J':{j=20;break;}
case 'K':{j=21;break;}
100
后一位
后一位校验位不正确!");
case 'L':{j=23;break;} case 'M':{j=24;break;} case 'N':{j=25;break;} case 'O':{j=26;break;} case 'P':{j=27;break;} case 'Q':{j=28;break;} case 'R':{j=29;break;} case 'S':{j=30;break;} case 'T':{j=31;break;} case 'U':{j=32;break;} case 'V':{j=34;break;} case 'W':{j=35;break;} case 'X':{j=36;break;} case 'Y':{j=37;break;} case 'Z':{j=38;break;}
default:j=parseInt(checkNoBit.charAt(i));
} j=j*(Math.pow(2, i)); sum=sum+j;
}
checkIntBit=sum%11;
if(checkIntBit == 10) checkIntBit = 0;
if (value.length==11)//用户输入 11 位,校验最
{
if(checkIntBit != checkBit)
{
alert(message+" [ "+value+"] 最
if(tempController.type !=
"hidden")tempController.focus();
}
return(false);
}
checkIntBit;
else{//用户输入 10 位,填写最后一位
valueLast = value.substring(0,10) +
value2=value2.replace(value,valueLast);
}
}
}
if(xsController!=null&&rowCount==1){
if(xhArray.length!=xsController.value){
alert("实际集装箱个数为
"+xhArray.length+",请修改数量!");
"hidden")xsController.focus();
if(xsController.type !=
return(false);
101
}
}
}
upValue = value2.toUpperCase();
tempController.value = upValue;
}
if(xhCount ==0){
"hidden")firstController.focus();
}
alert("箱号不能为空,请添加箱号!");
if(firstController.type !=
return(false);
if(xsController!=null&&rowCount!=1){
if(xhCount!=xsController.value){
alert("实际集装箱个数为
"+xhCount+",请修改数量!");
"hidden")xsController.focus();
}
}
}
return true;
}
if(xsController.type !=
return(false);
1.80 检验单个集装箱箱号为'TBJU'+7 位数字用于租赁部分的箱号校验
/************************************ Method: checkJzxxh()
purpose: 检验单个集装箱箱号为'TBJU'+7 位数字用于租赁部分的箱号校验
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkZlxh(controller,message){
var value=controller.value; if (value.length!=0 ){ if(value.length!=11){
alert(message+"应该为 11 位!");
if(controller.type != "hidden")controller.focus();
return(false);
}
var xzdm = value.substring(0,4).toUpperCase();
if(xzdm != 'TBJU'){
alert(message+"前四位应该为字母‘TBJU’!");
if(controller.type != "hidden")controller.focus();
return(false);
}
102
for (var i=4;i<value.length;i++){
if( value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message+"后7位应该为数字!");
if(controller.type != "hidden")controller.focus();
return(false);
}
}
var checkNoBit = value.toUpperCase().substring(0,10);//?ˉ×°????o?μ??°
ê???
var checkBit = value.substring(10,11);
var j,checkIntBit;
var sum = 0;//à??ó??oí for(var i=0;i<10;i++)
{
switch (checkNoBit.charAt(i))
{
case 'A':{j=10;break;} case 'B':{j=12;break;} case 'C':{j=13;break;} case 'D':{j=14;break;} case 'E':{j=15;break;} case 'F':{j=16;break;} case 'G':{j=17;break;} case 'H':{j=18;break;} case 'I':{j=19;break;} case 'J':{j=20;break;} case 'K':{j=21;break;} case 'L':{j=23;break;} case 'M':{j=24;break;} case 'N':{j=25;break;} case 'O':{j=26;break;} case 'P':{j=27;break;} case 'Q':{j=28;break;} case 'R':{j=29;break;} case 'S':{j=30;break;} case 'T':{j=31;break;} case 'U':{j=32;break;} case 'V':{j=34;break;} case 'W':{j=35;break;} case 'X':{j=36;break;} case 'Y':{j=37;break;} case 'Z':{j=38;break;}
default:j=parseInt(checkNoBit.charAt(i));
}
j=j*(Math.pow(2, i));
sum=sum+j;
}
checkIntBit=sum%11;
if(checkIntBit == 10) checkIntBit = 0;
103
if(checkIntBit != checkBit)
{
alert(message+"最后一位校验位不正确!");
if(tempController.type != "hidden")tempController.focus();
return(false);
}
}else{
alert(message+"不能为空!");
return(false);
}
upValue = value.toUpperCase(); controller.value = upValue; return true;
}
//han_feng 2003.11
//包含标志
var _INCLUDE_VALIDATE_JS = "YES";
常用校验方法 //
1.81 操作员口令校验,3-12 位数字或字母
//操作员口令校验,3-12 位数字或字母
function isPassword(nStr){
return ((nStr.length>=3) && (nStr.length<=12));
}
1.82 操作员编号校验,7 位数字
//操作员编号校验,7 位数字
function isOperId(sId){
return (isNumber(sId) && (sId.length==7));
}
1.83 限制 期限 不能大于 100 年
/**
*功能: 限制 期限 不能大于 100 年
*@param period 期限
*@param flag 期限单位
*@return true 通过检查; false 未通过检查
*/
function checkDatePeriod(period,flag){
var ret=true;
104
if(flag=="0"){
if(period>100)
ret= false;
}
else if(flag=="1"){
if(period >100 * 12)
ret= false;
}
else if(flag=="2"){
if(period >100 * 12 * 365)
ret= false;
}
return ret;
}
1.84 将日期格式由 yyyy-MM-dd,转换为 yyyymmdd,以直接比较两个日期的 大小
/************************************************
function: dateFormat
purpose: 将日期格式由 yyyy-MM-dd,转换为 yyyymmdd,以直接比较两个
日期的大小
parameters : 需要进行转换的日期串
return value : 处理后的日期串
*************************************************/
function dateFormat(str)
{
var yy="",mm="",dd="";
m=0;
j=0;
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-" || i==str.length){ m++;
if(m==1)
yy=str.substring(j,i);
if(m==2)
mm=str.substring(j,i);
if(m==3)
dd=str.substring(j,i);
j=i+1;
}
}
if (mm!="")
mm=fillZero(mm); if (dd!="") dd=fillZero(dd);
105
date = yy + mm +dd;
return (date);
}
1.85 判断字符串是否全部由数字组成
/************************************************
function: isNumber
purpose: 判断字符串是否全部由数字组成
parameters : 需要进行判断的字符串
return value : true/false
*************************************************/
function isNumber(controller,message){ var value=controller.value; if(value.length!=0){
for (i=0;i<value.length;i++){
if (value.charAt(i)>'9' || value.charAt(i)<'0'){
alert(message+"为 0-9 的数字");
controller.focus();
return false;
}
}
}
return true;
}
1.86 判断字符串是否全部由字母组成
/************************************************
function: isLetter
purpose: 判断字符串是否全部由字母组成
parameters:需要进行判断的字符串
return value: true/false
************************************************/
function isLetter(controller,message){ var value=controller.value; if(value.length!=0){
for(i=0;i<value.length;i++){
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
alert(message+"为 A-Z 或 a-z 的字母");
controller.focus();
return false;
}
else return true;
}
}
else return true;
}
106
1.87 对于月和日,如果前面有零,去除,如 01 变为
1/************************************************
function: trimZero
purpose: 对于月和日,如果前面有零,去除,如 01 变为 1
parameters : 需要进行处理的字符串
return value : 处理后的字符串
*************************************************/
function trimZero(str)
{
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
result = str.substring(i,j);
return result;
}
//判断是否是数字
function isNum(str){ var sl = 0; if(str.length>0)
{
if ((str.charAt(0)<'0' || str.charAt(0)>'9') && str.charAt(0)!='.'&&
str.charAt(0)!='-')
return false;
}
if(str.length>=1)
{
for (var i=0;i<str.length;i++)
{
if ((str.charAt(i)<'0' || str.charAt(i)>'9') && str.charAt(i)!='.')
return false;
if (str.charAt(i) == ".")
{
sl = sl + 1;
}
}
if (sl > 1)
{
return false;
}
if (str.charAt(str.length-1) == ".")
{
return false;
}
if (str == ".")
{
return false;
}
107
}
return true;
}
1.88 为 1 位的日月在前面补零,如将 1 变为 01
/************************************************
function: fillZero
purpose: 为 1 位的日月在前面补零,如将 1 变为 01
parameters : 需要进行处理的字符串
return value : 处理后的字符串
*************************************************/
function fillZero(str)
{
var i,j,result="";
j = str.length;
if (j==1)
result = "0" + str;
else
result = str;
return result;
}
1.89 在删除按钮的 onclick 事件触发
/************************************
function: delConfirm()
purpose: 在删除按钮的 onclick 事件触发
parameters : 提交的表单名称
************************************/
function delConfirm(form){
if (confirm("确定要删除吗?"))
form.submit();
}
1.90 检查 EMail 格式
/************************************
function: checkEmail() purpose: 检查 EMail 格式 parameters : 控件名称
return value : true/false.
************************************/
function checkEmail(controller)
{
108
var strEmail=controller.value;
var strE="@"; var strI="."; var i;
var iPos; var iLen; var iT=0;
var strT="";
if (strEmail.length!=0){ strT=strEmail; i=strT.indexOf(" "); if(i != -1)
{ alert("邮件地址不正确");
return false;
}
do
{
iPos=strT.indexOf(strE);
iLen=strT.length;
if (iPos==-1)
{
if(iT==0)
{ alert("邮件地址不正确");
return false;
}
else
{
}
else
{
}
break;
if ((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
if (iT !=1)
{ alert("邮件地址不正确");
return false;
}
strT=strEmail.substring(iPos+1,1);
109
if (strT==".")
{ alert("邮件地址不正确");
return false;
}
iT=0; iPos=strEmail.indexOf(strE); strT=strEmail.substring(iPos+1); do
{
iPos=strT.indexOf(strI);
iLen=strT.length;
if (iPos== -1)
{
}
else
{
break;
if((iPos==0)||(iPos==(iLen -1)))
{ alert("邮件地址不正确");
return false;
}
else
{
}
iT++;
}
}
strT=strT.substring(iPos+1);
while(strT !="")
iPos=strEmail.indexOf(strE); strT=strEmail.substring(0,iPos); iPos=strT.indexOf(strI);
if(iPos != -1)
{ alert("邮件地址不正确");
return false;
}
}
return true;
}
1.91 对输入控件的内容进行非空检验,如果为空,弹出提示信息
/************************************
function: checkNotnull()
purpose: 对输入控件的内容进行非空检验,如果为空,弹出提示信息
110
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkNotnull(controller,message){ var value=trim(controller.value); controller.value = value;
if (value.length==0){
alert(message+"不能为空!");
controller.focus();
return false;
}
return true;
}
1.92 检验控件值是否是固定位数的有效数字
/************************************
function: checkNumber()
purpose: 检验控件值是否是固定位数的有效数字
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkNumber(controller,len,message){
var value=trim(controller.value);
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message + "为 0-9 的数字");
controller.focus();
return false;
}
}
if (
value.length >
10){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
else if ( value.length == 10){
if (value > "2147483647"){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
}
}
111
if(value.length>len||(value.length<len&&value!="")){
alert(message+"应为"+len+"位");
return false;
}
else return true;
}
/* */
function checkNum(controller)
{
var value=controller.value;
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0")
return(false);
}
}
return(true);
}
function checkNumN(Num)
{
var value=trim(Num);
var count=0;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0")
return(false);
}
}
return(true);
}
1.93 所输内容应为字母
/************************************ Method: checkLetter()
purpose: 所输内容应为字母
parameters : 控件名称,提示信息
return value : true/false.
测试页面: test1.jsp
************************************/
function checkLetter(controller,len,message){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
112
if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
alert(message+"为 A-Z 或 a-z 的字母");
controller.focus();
return false;
}
}
}
/**********liu_qchao add 2004-9-21**********/
if(value.length>len){
alert(message+"应小于等于"+len+"位!");
return false;
}
/******************************************/
var upValue = value.toUpperCase();
controller.value = upValue;
return true;}
1.94 过滤掉"'"、"%"、"&"、"/"、"/"
/************************************ Method: quoteFilter()
purpose: 过滤掉"'"、"%"、"&"、"/"、"/"
parameters : 控件名称
************************************/
function quoteFilter(controller){
var valueStr = controller.value;
var pattern = /[/`]|[/~]|[/!]|[/@]|[/#]|[/$]|[/%]|[/^]|[/&]|[/*]|[/']|[/"]|[//]|[//]|[?]/;
var flag = pattern.test(valueStr);
if(flag){
alert("请不要输入以下非法字符( `, ~, !, @, #, $, %, ^, &,*, ‘, “, /,
//,? )");
}else{
}
}
return false;
return true;
//删除字符串两侧的空格
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '').replace(/^[/s /t]+|[/s /t]+$/g, '');
}
113
1.95 取字符串长度(不包含两端的空格)
/************************************
function: getCNTxtLength(controller) purpose: 取字符串长度(不包含两端的空格) parameters : 字符串
return value : int
************************************/
function getCNTxtLength(controller) {
var len; var i; len = 0;
for (i = 0 ;i < controller.length; i++) {
if (controller.charCodeAt(i) > 255)
len += 2;
else
}
len++;
return len;
}
/**/
function formatNumber(num,Fraction)
{
num = num.toString().replace(//$¥|/,/g,'');
if(isNaN(num))//not a number num = "0";
Fraction = Fraction.toString();
if(isNaN(Fraction)) Fraction="0";
var nMulti=1;
var nFraction = parseInt(Fraction,10)
for(var i=0;i<nFraction;i++)
nMulti = nMulti*10;
num = Math.round(num*nMulti);
cents = num%nMulti;
num = Math.floor(num/nMulti).toString();
//设置千分位
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
//计算小数点后加多少“0”;
var n = 0;
var sum = cents;
var zero="";
114
if(cents ==0)
{
}
else
{
n = nFraction-1;
while(sum*10 < nMulti)
{
sum = sum*10;
n++;
}
}
for(var j=0;j<n;j++)
{
zero = zero +"0";
}
cents = zero + cents;
if(nFraction > 0)
num = num + '.' + cents;
return num;
}
function amtTranBack(moneyStr){
return parseFloat(moneyStr.replace(/,/g, ""));
}
1.96 将金额转化成按千分位的显示格式
function amtTranShow(amtStr){
var a,renum='';
var j=0;
var a1='',a2='',a3=''; var tes=/^-/; if(event.keyCode>=33&&event.keyCode<=40) return;
a=amtStr.replace(/,/g, "");
a=a.replace(/[^-/.,0-9]/g,"");//删除无效字符
a=a.replace(/(^/s*)|(/s*$)/g, "");//trim if(tes.test(a)) a1='-';
else a1='';
a=a.replace(/-/g,"");
if(a!="0" && a.substr(0,2)!="0.")a=a.replace(/^0*/g, "");
j=a.indexOf('.'); if(j<0) j=a.length; a2=a.substr(0,j); a3=a.substr(j); j=0;
for( i=a2.length;i>3;i=i-3){
115
renum=","+a2.substr(i-3,3)+renum;
j++;
}
renum=a1+a2.substr(0,a2.length-j*3)+renum+a3;
return renum;
}
1.97 清空查询条件
/************************************ Method: setClear()
purpose: 清空查询条件
parameters: num 页面上的控件个数
************************************/
function setClear(){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.type!="button")
{
whichEl.value = "";
}
}
divColl = document.all.tags("select");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if(whichEl.name!="pagesize"&&whichEl.name!="Pagelist")
whichEl.options[0].selected = true;
}
}
1.98 价格输入是否合法(99,999.00)
/************************************ Method: checkPrice()
purpose: 价格输入是否合法(99,999.00)
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkPrice(controller,message){
var value=controller.value;
var m=0;
if (value.length!=0){
116
for (var i=0;i<value.length;i++){
if ((value.charAt(i)>"9" || value.charAt(i)<"0") &&
value.charAt(i)!="." && value.charAt(i)!=",") {
alert(message + "用小数或整数表示!");
controller.focus();
return(false);
}
if (value.charAt(i)==".")
{
m++;
}
}
if (
m>1)
{
alert(message + "至多有一个小数点!");
controller.focus();
return(false);
}
}
else controller.value="";
return true;
}
1.99 检验货票号为 1 位字母+6 位数字
/************************************ Method: checkHph()
purpose: 检验货票号为 1 位字母+6 位数字
parameters : 控件名称,提示信息
return value : true/false.
************************************/
function checkHph(controller,message){
var value=controller.value;
if (value.length!=0 ){
if((!(value.charAt(0)>="a" && value.charAt(0)<="z")) && (!(value.charAt(0)<="Z" && value.charAt(0)>="A"))){
alert(message+"的第一位应该为字母");
controller.focus();
return(false);
}
for (var i=1;i<value.length;i++){
if( value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message+"的格式错误,正确的格式应为 1 位字
母+6 位数字");
controller.focus();
return(false);
117
}
}
}
upValue = value.toUpperCase();
controller.value = upValue;
return true;
}
2.00 检验起始货票号必须小于截至货票号
/************************************ Method: checkHphSeq()
purpose: 检验起始货票号必须小于截至货票号
parameters :
return value : true/false.
************************************/ function checkHphSeq(qsController,jzController){ var qshp=qsController.value;
var jzhp=jzController.value;
if (qshp.length==0 && jzhp.length!=0){
var i = checkHph(jzController,"截止货票号");
return i;
}
if (
jzhp.length==0
&& qshp.length!=0){
var j = checkHph(qsController,"起始货票号");
return j;
}
if (qshp.length!=0 && jzhp.length!=0){
if (!checkHph(qsController,"起始货票号"))
return false;
if (!checkHph(jzController,"截止货票号"))
return false;
if (checkHph(qsController,"起始货票号") && checkHph(jzController,"截止货票号
")){
if (qshp>jzhp){
alert("起始货票号不能大于截止货票号!");
return false;
}
}
}
return true;
}
118
2.01 检验查询条件是否为空,为空则提示"查询条件不能为空!"
/************************************ Method: checkConditionNotNull()
purpose: 检验查询条件是否为空,为空则提示"查询条件不能为空!"
parameters :
return value : true/false.
************************************/
function checkConditionNotNull(){
var notNull=false;
divColl = document.all.tags("select");
for (i=0; i<divColl.length; i++) { whichEl = divColl(i); if(whichEl.value.length!=0){
if(whichEl.id!="fsdwlx"&&whichEl.id!="dddwlx"&&whichEl.name!="pagesize"
&&whichEl.name!="Pagelist"&&whichEl.id!="zfdwlx"&&whichEl.id!="zddwlx"
&&whichEl.id!="xfdwlx"&&whichEl.id!="xddwlx"){
notNull=true;
break;
}
}
}
if(notNull==false){
divColl = document.all.tags("input");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.type!="button"&&
whichEl.type !="hidden"){
if(whichEl.value.length!==0){
notNull=true;
break;
}
}
}
}
if(notNull==true) return true;
else {
alert("查询条件不能为空!");
return false;
}
}
2.02 检验是不是最短位数的数字,用于模糊查询
/************************************
119
Method: checkNumberLeastLen(controller,leastLen,message)
purpose: 检验是不是最短位数的数字,用于模糊查询
parameters : controller,leastLen,message return value : true/false.
************************************/
function checkNumberLeastLen(controller,leastLen,message){
var value=controller.value;
if (value.length!=0){
for (var i=0;i<value.length;i++){
if (value.charAt(i)>"9" || value.charAt(i)<"0"){
alert(message + "为 0-9 的数字");
controller.focus();
return false;
}
}
if (
value.length >=10){
alert(message+"的数字太大,请检查!");
controller.focus();
return false;
}
}
if(value.length <leastLen&&value.length>0){
alert(message+"至少应为"+leastLen+"位");
controller.focus();
return false;
}
else return true;
}
2.03 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数
/************************************
Method: checkDecimalNumber(controller,message,befor,after)
purpose: 输入为 Decimal 格式的数,且小数点前后都不能超过规定的位数
parameters : 控件名称,提示信息,小数点前面的最大位数,小数点后面的最 大位数
return value : true/false.
************************************/
function checkDecimalNumber(controller,message,befor,after){
var re=new RegExp("^((//d{1," + befor + "}(//.//d{1," + after + "})?)||(//.//d{1," + after + "}))$");
if(!re.test(controller.value)){
alert("提示:" + message + "输入错误必须为整数或小数,且整数位不
得大于" + befor + "位," + "小数位不得大于" + after + "位!");
return false;
}else{
}
return true;
120
}
2.04 电话号码校验(只能为横线?、()、或数字)
/************************************ Method: isTel(controller)
purpose: 电话号码校验(只能为横线?、()、或数字)
************************************/
function isTel(controller){
var tel=controller.value;
var validchars = "-()1234567890 ";
for (i=0;i<tel.length;i++){
telchar=tel.charAt(i);
if (validchars.indexOf(telchar, 0) == -1){
alert("请输入正确的电话号码格式!");
controller.focus();
return false;
}
}
return true;
}
2.05 电话号码由数字和-组成 and 电话号码为 7 到 13 位 and 13 开头的头的手
机号码必须为 11 位
/************************************ (1)电话号码由数字和-组成 (2)电话号码为 7 到 13 位
(3)13 开头的头的手机号码必须为 11 位
************************************/
function phoneCheck(controller,msg) { var str=trim(controller.value); var rst = str.substr(0,2);
var re = /^[1][3]/d{9}$/;
var reg = /^((/d{3,4}/-)?/d{7,8}(/-/d)?)$/;
if((rst == 13)&&(str.length!=11)&&!re.test(str)){
alert(msg+"号码格式错误,请输入正确的电话号码(手机)!");
controller.focus();
return false;
}else if((rst != 13)&&!reg.test(str)){
alert(msg+"号码格式错误,请输入正确的电话号码!");
controller.focus();
return false;
}
121
return true;
}
2.06 检测输入是否为正整数数字,如果结果为非给出相应提示
/************************************
Method: checkNumber(controller,message)
purpose: 检测输入是否为正整数数字,如果结果为非给出相应提示
parameters : 控件名称,提示信息
return value : true/false.
condition: controller:must;message:optional
************************************/
function checkNumber(controller,message)
{
var value=controller.value;
var count=0;
if (value.length!=0)
{
for (var i=0;i<value.length;i++)
{
if (value.charAt(i)>"9" || value.charAt(i)<"0")
{
if(message!=null){
alert(message+":为正整数的数字")
}else{
alert("为正整数的数字");
}
controller.value=""; controller.focus(); return(false);
}
}
}
controller.value=value;
return true;
}
2.07 避免多次提交页面 在 jsp 中嵌入该文件,在每个 jsp 页面的提交语句前执
行该方法
/************************************ Method: checkSubmit()
purpose: 避免多次提交页面 在 jsp 中嵌入该文件,在每个 jsp 页面的提交语
句前执行该方法
************************************/
var requestSubmitted = false;
122
function checkSubmit()
{
if(requestSubmitted == true)
{
alert("您已经提交了请求,请等待服务器的应答......");
return false;
}
requestSubmitted =
true;
return true;
}
2.08 检查 EMail 格式
/**********************************************
function: checkEmailAll() purpose: 检查 EMail 格式 parameters : 控件名称
return value : true/false.
**********************************************/
function checkEmailAll(controller){
var strEmail=trim(controller.value);
var strE="@"; var strI="."; if(strEmail.indexOf(" ")>0){
alert("邮件地址不正确");
return false;
}
if(strEmail.indexOf(strE)==-1){
alert("邮件地址不正确");
return false;
}
if(strEmail.indexOf(strI)==-1){
alert("邮件地址不正确");
return false;
}
var count = 0;
if (strEmail.length!=0){
for (var i=0;i<strEmail.length;i++){
if (strEmail.charAt(i)=="."){
count++;
}
}
if(count>2){
}
alert("邮件地址不正确");
return false;
}
123
if(count==1){
if((strEmail.indexOf(strI)- strEmail.indexOf(strE)<2)||(strEmail.indexOf(strI)==(strEmail.length-1))){
alert("邮件地址不正确");
return false;
}
}
if(count==2){
if(((strEmail.indexOf(strI)- strEmail.indexOf(strE)<2)||(strEmail.lastIndexOf(strI)- strEmail.indexOf(strI)<2))||(strEmail.lastIndexOf(strI)==(strEmail.length-1))){
alert("邮件地址不正确");
return false;
}
}
return true;
}
2.09 电话号码由数字和-组成
/************************************
电话号码由数字和-组成
************************************/
function phoneCheckH(controller,msg) {
var str=trim(controller.value);
var reg = /^(/d+/-?)+$/; var count=0; if(str.length!=0){
if(str.charAt(str.length-1)=="-"||str.charAt(0)=="-") count=1;
}
if(count==1){
alert(msg+'不能以"-"开始和结束');
return false;
}else{
if(!reg.test(str)){
alert(msg+'号码格式错误,只允许输入 0-9 的数字或者单个"-"!');
controller.focus();
return false;
}
return true;
}
return true;
}
124
2.10 检验 IP 地址
//检验 IP 地址
function checkIP(str,message){
var re=/^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])(/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-
5])){3}$/;
if(re.test(str)){
return true;
}
else{
}
}
alert(message + "格式错误!");
return false;
2.11 校验忽略样式内容后文本域中的内容是否为空//校验忽略样式内容后文本
域中的内容是否为空
function delTextareaCss(inforcontent) {
// 去除文本中的空白符及'&nbsp;'
var content = inforcontent.replace(//s*/g,'')
.replace(/(&nbsp;)?/g, '');
// .replace(/[<(.*)>.*<///1>|<(.*) //>]*/g, '');
if(content == null || content == "")
return true;
// 去除'style'标签及标签间的所有代码
if(content.indexOf("<style>") >= 0) {
content = content.substring(0, content.indexOf("<style>"))
+ content.substring(content.indexOf("</style>") + 8);
}
// 去除 word2000 中的文档信息
if(content.indexOf("<o:DocumentProperties>") >= 0 ) {
content = content.substring(0, content.indexOf("<o:DocumentProperties>"))
+
content.substring(content.indexOf("</o:DocumentProperties>") + 23);
}
// 纯文本内容
if(content.length > 0 && content.indexOf("<") < 0) {
return false;
}
125
// 在标签结束符'>'后是否为标签开始符'<'
for(i = 0; i < content.length; i++) {
if((content.substring(i, i + 1) == ">" && i != content.length - 1)
&& content.substring(i + 1, i + 2) != "<")
return false;
}
return true;
}
2.12 计算天数差的函数
/**********************************************
function: DateDiff(sDate1,sDate2)
purpose: 计算天数差的函数
parameters : sDate1 为结束日期,sDate2 为开始日期
return value : true/false
**********************************************/
function DateDiff(sDate1, sDate2){ //sDate1 和 sDate2 是 2002-12-18 格式
var sDate1=addMonth(sDate1); var sDate2=sDate2.value+"-01"; 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(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60/24)+1; //把相差的毫秒
数转换为天数
if(iDays>366){
alert("开始时间和结束时间的时间差最多为一年!");
return false;
}else return true;
}
2.13 把结束日期月份加上月末日期
/**********************************************
function: addMonth(sDate) purpose: 把结束日期月份加上月末日期 parameters : sDate 为日期
return value : sDate3 加上月末后的日期
**********************************************/
function addMonth(sDate){
var aDate = sDate.value.split("-");
var sDate3;
126
//2 月
if(aDate[1]=="02"){
//闰月
if((0==aDate[0]%4&&aDate[0]%100!=0)||aDate[0]%400==0){
sDate3=aDate[0]+"-"+aDate[1]+"-29";
}else{
sDate3=aDate[0]+"-"+aDate[1]+"-28";
}
}//1,3,5,7,8,10,12 月
else if(aDate[1]=="01"||aDate[1]=="03"||aDate[1]=="05"||aDate[1]=="07"||aDate[1]=="08 "||aDate[1]=="10"||aDate[1]=="12"){
sDate3=aDate[0]+"-"+aDate[1]+"-31";
}//4,6,9,11 月
else{
sDate3=aDate[0]+"-"+aDate[1]+"-30";
}
return sDate3;
}
//校验开始时间不能大于结束时间
//data1 开始时间 data2 结束时间
function compareDate(data1,data2){
if (data1.value>data2.value){
alert("结束时间应大于开始日期!");
return false;
}else{
return true;
}
}
2.14 检验输入的日期 yyyy-MM
/************************************************
function: checkDate(controller,message) purpose: 检验输入的日期 yyyy-MM parameters : controller 输入的日期
message 提示信息
return value : TRUE / FALSE
*************************************************/
function checkDate(controller,message){
var str=trim(controller.value);
controller.value = str; k=0; for(i=0;i<str.length;i++){
if(str.charAt(i)=="-")
k++;
}
127
if (k!=1){
alert("请输入"+message+"年、月!");
controller.focus();
return false;
}
var yy="",mm="";
for (i=0;i<=str.length;i++){ if(str.charAt(i)=="-"){ yy=str.substring(0,i); mm=str.substring(i+1);
}
}
if(yy.length!=4){
alert(message+"年份必须为四位数字!");
controller.focus();
return false;
}
if(mm.length>2){
alert(message+"月份必须为一位或两位数字!");
controller.focus();
return false;
} yy=trim0(yy); mm=trim0(mm); if(!isInt(yy)){
alert(message+"年份必须为数字!");
controller.focus();
return false;
}
if(parseInt(yy)<1900 || parseInt(yy)>2079 ||(yy=="")){
alert(message+"年份必须在 1900-2079 之间!");
controller.focus();
return false;
}
if(!isInt(mm)){
alert(message+"月份必须为数字!");
controller.focus();
return false;
}
if(parseInt(mm)>12 || parseInt(mm)<1||(mm=="")){
alert(message+"月份必须在 1-12 之间!!");
controller.focus();
return false;
}
return true;
}
//月日去 0
function trim0(str)
{
128
var i,j,result="";
j = str.length;
for (i=0;i<j;i++)
if ( str.charAt(i)!='0' ) break;
result = str.substring(i,j);
return result;
}
function trim(str)
{
str = this != window? this : str;
return str.replace(/^/s+/g, '').replace(//s+$/g, '');
}
//数字检验
function isInt(str){
if(str.length!=0){
for (i=0;i<str.length;i++)
if ( str.charAt(i)<'0' || str.charAt(i)>'9')
return false;
}
return true;
}
129

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值