?? 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 + -