📄 checkdata.js
字号:
/**
* Description: JavaScript脚本文件,提供公用方法,供JSP网页调用
*/
//wxl add at 2005-04-14////////////////////////////
/*
对date数据大小进行效验dateCompare,后一个值一定要大于前一个值,若不是提示信息,光标自动定位
参数args1代表小参数对象的值,例如:document.form1.name.value
参数args2代表大参数对象的值,例如:document.form1.name.value
参数args3代表arg1参数的实际意义,以便能准确通知用户。
参数args4代表arg2参数的实际意义,以便能准确通知用户。
参数args11代表arg11参数的页面元素,以便设置相应的焦点。
*/
function dateValueCompare(args1,args2,args3,args4,obj11){
var arrayOfStart = trim(args1).split("-");
var arrayOfEnd = trim(args2).split("-");
//alert(""+arrayOfEnd);
var startDate=new Date(arrayOfStart[0],arrayOfStart[1],arrayOfStart[2]);
//alert("startDate="+startDate);
var endDate=new Date(arrayOfEnd[0],arrayOfEnd[1],arrayOfEnd[2]);
//alert("endDate="+endDate);
//alert(startDate<=endDate);
if(startDate<=endDate){
//alert("判断合法已进入!");
return true;
}else{
alert(args3+"输入的值应该小于"+args4+"值!");
obj11.focus();
return false;
}
}
/**
功能描述:验证时间的格式()
obj1 : 输入框对象
obj2 : 是否可以为空 0,可以 1 不可以
obj3 : 描述信息
obj4 : 日期格式 'yyyy-mm-dd','yyyy-mm','yyyy'
*/
function checkDateType(obj1,obj2,obj3,obj4){
var obj=obj1;
if(obj4=='yyyy-mm-dd'){
if(!rigorCheckValue(obj1,obj2,4,0,0,obj3)){
return false;
}
return true;
}else if(obj4=='yyyy-mm'){
if(!checkDateYearMonth(obj1,obj2,obj3)){
return false;
}
return true;
}else if(obj4=='yyyy'){
if(!checkDateOnlyYear(obj1,obj2,obj3)){
return false;
}
return true;
}
return true;
}
/**
功能描述:验证时间的格式('yyyy')
obj1 : 输入框对象
obj2 : 是否可以为空 0,可以 1 不可以
obj3 : 描述信息
*/
function checkDateOnlyYear(obj1,obj2,obj3){
var obj=obj1;
if(obj2==0){
if(obj.value!=''){
if(isNumberAlt(obj1)){
if(obj.value.length>=0&&obj.value.length<4){
alert(obj3+'格式不正确(正确格式:yyyy)');
obj.focus();
return false;
}else if(obj.value.length>4){
alert(obj3+'格式不正确(正确格式:yyyy)');
obj.focus();
return false;
}
}
}
return true;
}else if(obj2==1){
if(obj.value==''){
alert(obj3+'不能为空!');
obj.focus();
return false;
}else{
if(isNumberAlt(obj1)){
if(obj.value.length>=0&&obj.value.length<4){
alert(obj3+'格式不正确(正确格式:yyyy)');
obj.focus();
return false;
}else if(obj.value.length>4){
alert(obj3+'格式不正确(正确格式:yyyy)');
obj.focus();
return false;
}
}
return true;
}
}
}
/**
功能描述:验证时间的格式('yyyy-mm')
obj1 : 输入框对象
obj2 : 是否可以为空 0,可以 1 不可以
obj3 : 描述信息
*/
function checkDateYearMonth(obj1,obj2,obj3){
var obj=obj1;
if(!obj.value==''){
var dateReg = /^\d\d\d\d-([0][1-9])|([1][0-2])$/;
if(dateReg.test(obj.value)){
return true;
}else{
alert(obj3+"填写的不是有效的日期格式,请重新输入!");
obj.focus();
return false;
}
}else if(obj2==1){
if(obj.value==''){
alert(obj3+"为必填项,请输入!");
obj.focus();
return false;
}else if(!obj.value==''){
var dateReg = /^\d\d\d\d-([0][1-9])|([1][0-2])$/;
if(dateReg.test(obj.value)){
return true;
}else{
alert(obj3+"填写的不是有效的日期格式,请重新输入!");
obj.focus();
return false;
}
}
}
}
///////////////////////////
/**
* 作用: 去除字符串左空格
* 参数: str: 字符串
* 返回: 去除左空格后的字符串
*/
function lTrim(str){
var rtnStr;
rtnStr=""
for (var i=0;i<str.length;i++){
if (str.charAt(i)!=" "){
rtnStr=str.substr(i);
break;
}
}
return rtnStr;
}
/**
* 作用: 去除字符串右空格
* 参数: str: 字符串
* 返回: 去除右空格后的字符串
function rTrim(str){
var rtnStr;
rtnStr=""
for (var i=str.length-1;i>=0;i--){
if (str.charAt(i)!=" "){
rtnStr=str.substring(0,i+1);
break;
}
}
return rtnStr;
}
*/
//去掉字串右边的空格
function rTrim(str)
{
var iLength;
iLength = str.length;
if (str.charAt(iLength - 1) == " ")
{
//如果字串右边第一个字符为空格
str = str.slice(0, iLength - 1);//将空格从字串中去掉
//这一句也可改成 str = str.substring(0, iLength - 1);
str = rTrim(str); //递归调用
}
return str;
}
/**
* 作用: 去除字符串左右空格
* 参数: str: 字符串
* 返回: 去除左右空格后的字符串
*/
function trim(str){
return(lTrim(rTrim(str)));
}
/**
* 作用: 根据错误号,显示提示信息
* 参数: (1) errNo: 错误号(与message.js文件对应); (2) objName: 对象名(可选参数)
* 返回: alert对话框
*/
function displayMessage(errNo,objName) {
if( objName==null ){
alert(errNo);
} else {
alert('"'+objName+'"'+errNo);
}
}
/**
* 作用: 检测是否为空
* 参数: obj: 要检查的输入对象
* 返回: true/false
*/
function isEmpty(obj) {
var val=obj.value;
if(trim(val)==""){
return true;
}
return false;
}
/**
* 作用: 检测是否为空;如果为空,显示提示信息
* 参数: (1) obj: 要检查的输入对象; (2) message: 在错误提示中显示的对象名称(可选)
* 返回: true/false alert
*/
function isEmptyAlt(obj,message) {
if( isEmpty(obj) ){
displayMessage(M01001,message);
obj.focus();
return true;
}
return false;
}
/**
* 作用: 检测数字,至少一位长度
* 参数: obj: 要检查的输入对象
* 返回: true/false
*/
function isNumber(obj) {
var str=trim(obj.value);
var regexp=/^(\d+)$/;
return regexp.test(str);
}
/**
* 作用: 检测数字,至少一位长度;如果不是数字,显示提示信息
* 参数: obj: 要检查的输入对象; (2) message: 在错误提示中显示的对象名称(可选)
* 返回: true/false alert
*/
function isNumberAlt(obj,message) {
if( isNumber(obj) ){
return true;
}
displayMessage(M01002,message);
obj.focus();
return false;
}
/**
* 作用: 检测int,长度范围:1-限定长度
* 参数: (1) num: 输入的数字; (2) len: 数字的限定长度(默认是8)
* 返回: true/false
*/
function isInt(num,len){
var regexp;
var leng;
if( len==null ){
regexp = /^(\d){1,8}$/;
} else {
regexp = /^(\d){1,leng}$/;
}
return(regexp.test(num));
}
/**
* 作用: 检测int,长度范围(1-限定长度);如果不符,显示提示信息
* 参数: (1) num: 输入的数字; (2) len: 数字的限定长度(默认是8); (3) message: 在错误提示中显示的对象名称(可选)
* 返回: true/false alert
*/
function isIntAlt(num,len,message) {
if( isInt(num,len) ){
return true;
}
displayMessage(M01003,message);
return false;
}
//检测float,长度范围:整数1-11位,浮点精度4位
//如:12 12.12 12.1234 为合法的,12.12345为非法
function isFloat(obj){
//var regexp = /^(\d){1,11}((.)(\d){1,4})?$/;
// 2004-07-26 李诚修改
// var regexp = /^(-?)?(\d){1,11}((.)(\d){1,4})?$/;
var regexp = /^(-?)?(\d){1,11}((\.)(\d){1,4})?$/;
return(regexp.test(trim(obj.value)));
}
//检测float,长度范围:整数1-11位,浮点精度4位
//如果不符,显示提示信息
function isFloatAlt(obj,message) {
if( isFloat(obj) ){
return true;
}
displayMessage(M01004,message);
obj.focus();
return false;
}
//检测字符串,为数字与字母组合
function isString(obj){
var str=trim(obj.value);
var regexp=/^(\w+)$/;
return regexp.test(str);
}
//检测字符串,为数字与字母组合;如果不符,显示提示信息
function isStringAlt(obj,message) {
if( isString(obj) ){
return true;
}
displayMessage(M01005,message);
obj.focus();
return false;
}
//电子信箱检测
function isEmail(str) {
var regexp = /^(\w)[^@]{0,16}(@)(\w){1,30}(.(\w){1,5})+$/;
return(regexp.test(str));
}
//电子信箱检测;如果不符,显示提示信息
function isEmailAlt(str,message) {
if( isEmail(str) ){
return true;
}
displayMessage(M01006,message);
return false;
}
//身份证号码检测
function isIDCard(str) {
var regexp;
if(str.length==15){ //15位
regexp=/^(\d{15})$/;
return regexp.test(str);
}
if(str.length==18){ //18位
regexp=/^(\d{17})([1]{1})$/;
if(!regexp.test(str))
regexp=/^(\d{17})(\w{1})$/;
return regexp.test(str);
}
return false;
}
//身份证号码检测;如果格式不符,显示提示信息
function isIDCardAlt(str,message) {
if( isIDCard(str) ){
return true;
}
displayMessage(M01007,message);
return false;
}
//用户ID检测,可以包含字母数字及除字符:’ ” 外的其他字符,长度1-16位
function isUserID(str) {
regexp = /^(\w){1,16}$/;
return(regexp.test(str));
}
//用户ID检测,可以包含字母数字及除字符:’ ” 外的其他字符,长度1-16位
//如果格式不符,显示提示信息
function isUserIDAlt(str,message) {
if( isUserID(str) ){
return true;
}
displayMessage(M01008,message);
return false;
}
//检测字符串 不能包含><'"
function isStr(obj){
var tf=false;
var str=trim(obj.value);
if(str.indexOf("'")>-1||str.indexOf(">")>-1||str.indexOf("<")>-1||str.indexOf("\"")>-1)
tf=false;
else
tf=true;
return tf;
}
//检测字符串 不能包含><'";如果格式不符,显示提示信息
function isStrAlt(obj,message) {
if( isStr(obj) ){
return true;
}
displayMessage(M01009,message);
obj.focus();
return false;
}
//检测日期(1900~2099),合法格式为 2002-09-30
function isDate(obj)
{
var dt=trim(obj.value);
var dtYear = dt.substring(0,4);
var joinStr1 = dt.substring(4,5);
var dtMonth = dt.substring(5,7);
var joinStr2 = dt.substring(7,8);
var dtDay = dt.substring(8,10);
var leapYear = false; //闰年标志
var tf = true;
if (!isInt(dtYear))
return false;
if (!isInt(dtMonth))
return false;
if (!isInt(dtDay))
return false;
if(joinStr1!="-"||joinStr2!="-")
return false;
if((dt.length)!=10)
tf = false;
if(dtYear<1900)
tf = false;
if(dtYear>2099)
tf = false;
if((dtYear%400)==0)
leapYear = true;
else
if((dtYear%100)!=0)
if(dtYear%4==0)
leapYear = true;
if(dtMonth<1)
tf = false;
if(dtMonth>12)
tf = false;
switch(dtMonth) {
case '01':
case '03':
case '05':
case '07':
case '08':
case '10':
case '12':
if(dtDay<1)
tf = false;
if(dtDay>31)
tf = false;
break;
case '04':
case '06':
case '09':
case '11':
if(dtDay<1)
tf = false;
if(dtDay>30)
tf = false;
break;
case '02':
if(leapYear) {
if(dtDay<1)
tf = false;
if(dtDay>29)
tf = false;
}
else {
if(dtDay<1)
tf = false;
if(dtDay>28)
tf = false;
}
break;
}
if(tf)
return true;
else
return false;
}
//检测日期(1900~2099),合法格式为 2002-09-30;如果格式不符,显示提示信息
function isDateAlt(obj,message) {
if( isDate(obj) ){
return true;
}
displayMessage(M01010,message);
obj.focus();
return false;
}
//检测日期(1900~2099),合法格式为 2002-09-30
function isTempDate(obj)
{
var dt=obj;
var dtYear = dt.substring(0,4);
var joinStr1 = dt.substring(4,5);
var dtMonth = dt.substring(5,7);
var joinStr2 = dt.substring(7,8);
var dtDay = dt.substring(8,10);
var leapYear = false; //闰年标志
var tf = true;
if (!isInt(dtYear))
return false;
if (!isInt(dtMonth))
return false;
if (!isInt(dtDay))
return false;
if(joinStr1!="-"||joinStr2!="-")
return false;
if((dt.length)!=10)
tf = false;
if(dtYear<1900)
tf = false;
if(dtYear>2099)
tf = false;
if((dtYear%400)==0)
leapYear = true;
else
if((dtYear%100)!=0)
if(dtYear%4==0)
leapYear = true;
if(dtMonth<1)
tf = false;
if(dtMonth>12)
tf = false;
switch(dtMonth) {
case '01':
case '03':
case '05':
case '07':
case '08':
case '10':
case '12':
if(dtDay<1)
tf = false;
if(dtDay>31)
tf = false;
break;
case '04':
case '06':
case '09':
case '11':
if(dtDay<1)
tf = false;
if(dtDay>30)
tf = false;
break;
case '02':
if(leapYear) {
if(dtDay<1)
tf = false;
if(dtDay>29)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -