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

Js在业务软件中的方法大全相关推荐

  1. yjk的波库在哪里_PKPM、YJK地震波导入至MIDAS软件中的方法

    PKPM.YJK地震波导入至MIDAS软件中的方法 2018-11-26 PKPM.YJK的地震波导出的格式后缀分别为X/Y/Z后缀(截止作者发文时最新的版本),midas Building及mida ...

  2. Linux操作系统下软件的安装方法大全

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  3. JS数组与对象的遍历方法大全

    本文简单解析各种数组和对象属性的遍历方法: 原生for循环.for-in及forEach ES6 for-of方法遍历类数组集合 Object.key()返回键名的集合 jQuery的$.each() ...

  4. java 方法大全_java中的方法大全

    方法: 一.什么是方法? 就是有名字的代码段.适用于函数. 方法的定义只管某个功能的实现,只保证功能的可用. 二.方法的目的是什么? 为了代码的重用.(相同的类型的操作,不用重复的写代码) 三.方法的 ...

  5. 1734-AENTR/1734-AENT IP设置及在5000软件中组态方法

    一.模块IP地址设置 1734-AENTR(1734-AENT与1734-AENTR的区别是单网口和双网口)模块上有2个个网口.3个拨码开关和5个状态指示灯,如下图所示: 当我们拿到一个全新的1734 ...

  6. 统计学中数据分析方法大全

    Part1描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特征和随机变量之间关系进行估计和描述的方法.描述统计分为集中趋势分析和离中趋势分析和相关分析三大部分 ...

  7. 统计学中数据分析方法大全!

    来源:数据派THU 我是小z 之前有断断续续讲过统计学中的数据分析方法,今天分享的这篇更加全面.系统,涉及到18个方面,收藏就完事儿了~ Part1描述统计 描述统计是通过图表或数学方法,对数据资料进 ...

  8. js常用的2中排序方法:冒泡排序和快速排序

    冒泡排序:例如9 4 5 6 8 3 2 7 10 1 首先:9和4比较  4放前   4 9 5 6 8 3 2 7 10 1 4和5比较   4不动   4 9 5 6 8 3 2 7 10 1 ...

  9. CAD软件中如何设置符号库?

    在使用国产CAD软件绘制电气CAD图纸的过程中,经常会用到电气符号库.那么如何设置浩辰CAD电气软件中的符号库呢?下面就和小编一起来看看国产CAD软件--浩辰CAD电气软件中电气符号大全之设置符号库的 ...

最新文章

  1. 独家 | 基于Python的遗传算法特征约简(附代码)
  2. 半世纪全球顶级学者迁移图(附视频、亿级学术信息)| 数据院科技大数据研究中心发布
  3. Python Django 多表设计OneToOneField/ManyToManyField/ForeignKey
  4. javascript理论篇(详情见地址)
  5. 使Netty 4中的HTTP内容压缩工作
  6. 让你的网站首页自动选择语言转跳
  7. OpenCv平滑与模糊
  8. farm ugly chicken kick(fuck)这个计算机词汇的由来
  9. java8新特性和汪文君Google Guava项目实战视频
  10. 1534 棋子游戏(博弈论,未知规律... ...)
  11. Mac 系统 Arduino IDE 找不到开发板端口的解决方法
  12. 【一次过】左旋转字符串
  13. CNN网络架构学习:Chapter-5-ResNet(附代码tensorflow)
  14. 关于Invalid bound statement (not found)出现原因和解决方法
  15. 前端学习周报(第三周)
  16. Spring Cloud OAuth2中访问/oauth/token报Unsupported grant type: password问题的解决
  17. 使用python批量下载天猫数据并进行合并(非爬虫)
  18. oracle核销预付账款,AP模块外币预付款核销的CNY尾差问题
  19. 云计算是继互联网计算机后在信息时代,你知道啥是“云计算”吗?
  20. 生信识图之 点图进阶-6(UMAP)

热门文章

  1. 《给研究生的学术建议》13——研究设计
  2. vue 项目进行直播视频 vue-video-player
  3. Android Bugly接入
  4. 7-1 圆锥的体积 (20 分)
  5. 《坤之色——楚雄》孙溟㠭中国艺术
  6. matlab制作gif表情
  7. Android开发必备工具
  8. linux装机必备软件
  9. 中国iaas产业2012年度点评
  10. ios私钥证书和描述文件.mobileprovision的生成方法