一些不错的函数
把下面的这个做成一个js文件,然后就可以在任何页面调用了.
/*================method=======================
*1.var_to_obj---------将一个变量转换为对象
*2.is_greater---------判断是否大于某个数
*3.is_less----------判断是否小于某个数
*4.compare_date------比较两个日期的大小,num1>num2 return:true;num1<=num2 return:false
*5.is_numeric------判断是否是数字
*6.is_price-----判断是否是价格格式:00.00带两位小数
*7.is_null-----判断是否是空true:空false:非空
*8.isspace------判断是否空格
*9.isspace----判断是否空格
*10.is_int(----判断是否是整数true:是整数,false:不是整数
*11.is_date----判断是否是日期
*12.is_date2---判断是否是日期
*13.isselected----判断是否有有效数据被选中
*14.ischaracter----检查是否是字符
*15.isothernamecharacter-----检查是否是其它可以作名称的字符
*16.isnamecharacter-----检查是否是可以作名称的字符
*17.isemail-----检查是否是email
*18.iszip----检查是否是邮编
*19.isdigitalstring-----检查是否是数字字符串
*20.isempty-----isempty函数判断一个字符串是否为空
*21.trim-----trim函数去掉一字符串两边的空格
*22.isdigital----isdigital函数判断一个字符串是否由数字(int or long)组成
*23.isfloat----isfloat函数判断一个字符串是否由数字(int or long or float)组成
*24.istelephone---判断一个字符串是否由数字或'-','*','()'组成
*25.datetransfer-----日期格式转化2/18/2000 ----2000-2-18
*26.transferdate----转化日期2000-10-20 ---->10/20/2000
*27.ispassword-----检查是否是密码
*28.isleapyear-----判断是否为润年的函数
*29.getdaysinmonth----取得每月天数的函数
*30.jtrimstr---去掉字符串所有空格
*=============================================*/
function doinputconnotempty(txtinput,minlength,salert){
txtinput.value=trim(txtinput.value);
var m_isvalid=true;
if(isempty(txtinput.value)) m_isvalid=false;
if(minlength>0){
if(txtinput.value.length<minlength) m_isvalid=false;
}
if(!m_isvalid){
if(salert!="") window.alert(salert);
txtinput.focus();
}
return m_isvalid;
}
// 将一个变量转换为对象
function var_to_obj(val)
{
this.value=val;
}
// 判断是否大于某个数
function is_greater(field,crit,limit)
{
var ret = (is_numeric(field,-1) ) ? (field.value > limit ) : false;
if (!ret)
docritcode(field,crit,"value must be greater than "+limit);
return(ret);
}
// 判断是否小于某个数
function is_less(field,crit,limit)
{
var ret = (is_numeric(field,-1) ) ? (field.value < limit ) : false;
if (!ret)
docritcode(field,crit,"value must be less than "+limit);
return(ret);
}
function is_numeric(field,crit,msg)
{
var ret = true;
var numstr="0123456789";
var decused=false;
var chr;
for (i=0;i<field.value.length;++i)
{
chr=field.value.charat(i);
if (numstr.indexof(chr,0)==-1)
{
if ( (!decused) && chr==".")
{
decused=true;
}
else
{
ret=false;
}
}
}
if (!ret)
docritcode(field,crit,msg);
return(ret);
}
// 判断是否是价格
function is_price(field,crit,msg)
{
var ret = true;
var numstr="0123456789";
var decused=false;
var chr;
for (i=0;i<field.value.length;++i)
{
chr=field.value.charat(i);
if (numstr.indexof(chr,0)==-1)
{
if ( (!decused) && chr==".")
{
decused=true;
}
else
{
ret=false;
}
}
}
if(ret)
{
if(decused&&(field.value.length-field.value.indexof('.')<4))
;
else if(decused)
ret=false;
}
if (!ret)
docritcode(field,crit,msg);
return(ret);
}
// 判断是否是空
function is_null(field,crit,msg)
{
var text=""+ trim(field.value);
if(text.length)
{ for(var i=0;i<text.length;i++)
if(text.charat(i)!=" "&&text.charat(i)!=" ")
break;
if(i>=text.length){
ret=true;}
else{
ret=false;}
}
else
ret=true;
if (ret)
docritcode(field,crit,msg);
return(ret);
}
function isspace(field)
{
var text=""+field.value;
if(text.length)
{
for(var i=0;i<text.length;i++)
if(text.charat(i)!=" "&&text.charat(i)!=" ")
break;
if(i>=text.length)
field.value="";
}
}
function docritcode(field,crit,msg)
{
if ( (-1!=crit) )
{
alert(msg)
if (crit==1)
{
field.focus(); // focus does not work on certain netscape versions
field.select();
}
}
}
// 判断是否是整数
function is_int(field,crit,msg){
var ret = true;
var numstr="0123456789";
var chr;
if (field.value.length==0)
{
ret=false;
}
for (i=0;i<field.value.length;++i)
{
chr=field.value.charat(i);
if (numstr.indexof(chr,0)==-1)
{
ret=false;
}
}
if (!ret)
docritcode(field,crit,msg);
return(ret);
}
// 判断是否是日期
function is_date(field,crit,msg){
var ret = false;
var mark1;
var mark2;
var days;
var y;
var m;
var d;
if(field.value=="")
return true;
cd=new date();
if ( (mark1 = field.value.indexof('-'))==-1)
mark1=field.value.indexof('-')
if (mark1>-1)
{
if ( (mark2 = field.value.indexof('-',mark1+1)) ==-1)
mark2=field.value.indexof('-',mark1+1);
if ((mark2>-1)&&(mark2+1<field.value.length) )
{
y = parseint(field.value.substring(0,mark1),10);
m = parseint(field.value.substring(mark1+1,mark2),10);
d = parseint(field.value.substring(mark2+1,field.value.length),10);
year = new var_to_obj(y);
month = new var_to_obj(m);
day = new var_to_obj(d);
days = getdaysinmonth(month.value,year.value) + 1;
if (
(is_greater(day,-1,0))&&(is_less(day,-1,days))&&
(is_greater(month,-1,0))&&(is_less(month,-1,13))&&
(is_greater(year,-1,1900))&&(is_less(year,-1,2500))
)
ret=true;
}
}
if (!ret) docritcode(field,crit,msg);
return(ret);
}
function docrit(field,crit,msg)
{
if ( (-1!=crit) )
{
alert(msg);
if (crit==1)
{
field.focus(); // focus does not work on certain netscape versions
}
}
}
// 判断是否有有效数据被选中
function isselected(field,crit,msg)
{
value=""+field.options[field.selectedindex].value;
if(value=="0")
ret=false;
else
ret=true;
if (!ret)
docrit(field,crit,msg);
return(ret);
}
// 检查是否是字符
// ccharacter:输入值
function ischaracter( ccharacter )
{
var sformat = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
if( sformat.indexof( ccharacter, 0 ) == -1 )
{
return false;
}
return true;
}
//判断是否是数字和字母的组合
function ischrandnum( ccharacter )
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
if(str.charat(ilen) < 'a' || str.charat(ilen) > 'z' )
{
if(str.charat(ilen) < 'a' || str.charat(ilen) > 'z' )
return false;
}
}
}
return true;
}
// 检查是否是其它可以作名称的字符
// ccharacter:输入值
function isothernamecharacter( ccharacter )
{
var sformat = "_";
if( sformat.indexof( ccharacter, 0 ) == -1 )
{
return false;
}
return true;
}
function isothernamecharacter1( ccharacter )
{
var sformat = "-";
if( sformat.indexof( ccharacter, 0 ) == -1 )
{
return false;
}
return true;
}
function isothernamecharacter2( ccharacter )
{
var sformat = ".";
if( sformat.indexof( ccharacter, 0 ) == -1 )
{
return false;
}
return true;
}
// 检查是否是可以作名称的字符
// svalue:输入值
function isnamecharacter( svalue )
{
if( svalue == null )
{
return false;
}
for( i = 0; i < svalue.length; i ++ )
{
var ccharacter = svalue.charat( i );
if( isdigital( ccharacter ) == false && ischaracter( ccharacter ) == false && isothernamecharacter( ccharacter ) == false&& isothernamecharacter1( ccharacter ) == false&& isothernamecharacter2( ccharacter ) == false )
{
return false;
}
}
return true;
}
//检查是否是密码
function ispassword( svalue )
{
if( svalue == null )
{
return false;
}
for( i = 0; i < svalue.length; i ++ )
{
var ccharacter = svalue.charat( i );
if( isdigital( ccharacter ) == false && ischaracter( ccharacter ) == false && isothernamecharacter( ccharacter ) == false)
{
return false;
}
}
return true;
}
// 检查是否是email
// svalue:输入值,合法格式为a@b.c.d此类形式
function isemail( svalue )
{
var ifirstindex = 0;
var isecondindex = svalue.indexof( '@' );
if( isecondindex == -1 )
{
return false;
}
var stemp = svalue.substring( ifirstindex, isecondindex );
if( isnamecharacter( stemp ) == false )
{
return false;
}
isecondindex = svalue.indexof( '.' );
if( isecondindex == -1 || svalue.substring( svalue.length-1, svalue.length ) == '.' )
{
return false;
}
else if( stemp.length == svalue.length - 2 ) // the last two characters are '@' and '.'
{
return false;
}
else
{
var stempvalue = svalue;
isecondindex = svalue.indexof( '@' );
while( isecondindex != -1 )
{
ifirstindex = isecondindex + 1;
stempvalue = stempvalue.substring( ifirstindex, stempvalue.length ); // the right section of value
isecondindex = stempvalue.indexof( '.' );
//document.write( "stempvalue=" + stempvalue + "<br>" );
stemp = stempvalue.substring( 0, isecondindex );
//document.write( "stemp=" + stemp + "<br>" );
if( isnamecharacter( stemp ) == false )
{
return false;
}
}
if( isnamecharacter( stempvalue ) == false )
{
return false;
}
}
return true;
}
// 检查是否是邮编
// svalue:输入值,合法格式为六位整数
function iszip( svalue )
{
if( svalue == null )
{
return false;
}
if( svalue.length != 6 )
{
return false;
}
else
{
for( i = 0; i < 6; i ++ )
{
if( isdigital( svalue.charat( i ) ) == false )
{
return false;
}
}
}
return true;
}
// 检查是否是数字字符串
// svalue:输入值
function isdigitalstring( svalue )
{
if( svalue == null )
{
return false;
}
for( i = 0; i < svalue.length; i ++ )
{
if( isdigital( svalue.charat( i ) ) == false )
{
return false;
}
}
}
//isempty函数判断一个字符串是否为空
function isempty(his)
{
flag = true;
for(var i=0;i<his.length;i++)
{
if(his.charat(i)!=" ")
{
flag = false;
break;
}
}
return flag;
}
//trim函数去掉一字符串两边的空格
function trim(his)
{
//找到字符串开始位置
pos_start = -1;
for(var i=0;i<his.length;i++)
{
if(his.charat(i)!=" ")
{
pos_start = i;
break;
}
}
//找到字符串结束位置
pos_end = -1;
for(var i=his.length-1;i>=0;i--)
{
if(his.charat(i)!=" ")
{
pos_end = i;
break;
}
}
//返回的字符串
str_return = ""
if(pos_start!=-1 && pos_end!=-1)
{
for(var i=pos_start;i<=pos_end;i++)
{
str_return = str_return + his.charat(i);
}
}
return str_return;
}
//isdigital函数判断一个字符串是否由数字(int or long)组成
function isdigital(str)
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
return false;
}
}
return true;
}
//isfloat函数判断一个字符串是否由数字(int or long or float)组成
function isfloat(str)
{
flag_dec = 0
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) == '.')
{
flag_dec++;
if(flag_dec > 1)
return false;
else
continue;
}
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
return false;
}
}
return true;
}
//istelephone函数判断一个字符串是否由数字或'-','*'组成
function istelephone(str)
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
if((str.charat(ilen)!='-')&&(str.charat(ilen)!='*'))
return false;
}
}
return true;
}
//比较两个日期的大小,num1>num2 return:true;num1<=num2 return:false
function compare_date(num1,num2)
{
var pos1,pos2,end;
var para1,para2,para3,para4,para5,para6;
//para1:年
//para2:月
//para3:日
end=num1.length;
pos1=num1.indexof("-",0);
pos2=num1.indexof("-",pos1+1);
para1=num1.substring(0,pos1);
para2=num1.substring(pos1+1,pos2);
para3=num1.substring(pos2+1,end);
para1=parseint(para1,10);
para2=parseint(para2,10);
para3=parseint(para3,10);
end=num2.length;
pos1=num2.indexof("-",0);
pos2=num2.indexof("-",pos1+1);
para4=num2.substring(0,pos1);
para5=num2.substring(pos1+1,pos2);
para6=num2.substring(pos2+1,end);
para4=parseint(para4,10);
para5=parseint(para5,10);
para6=parseint(para6,10);
if(para1>para4)
{
return true;
}
else if(para1==para4)
{
if(para2>para5)
{
return true;
}
else if(para2==para5)
{
if(para3>para6)
{
return true;
}
}
}l.co
return false;
}
//去掉字符串所有空格
function jtrimstr(str)
{
var i=0;
var j;
var len=str.length;
trimstr="";
while(i<len)
{
if(str.charat(i)!=" ")
{
trimstr=trimstr+str.charat(i);
}
i++;
}
return(trimstr);
}
//转化日期
function transferdate(str)
{
var m=4;
var strlen=str.length
var n=strlen-1;
while (n>=strlen-2)
{
if(str.charat(n)=="-")
{
break;
}
n=n-1
}
trimstr=str.substring(m+1,n)+"/"+ str.substring(n+1,strlen)+"/"+str.substring(0,m)
return(trimstr)
}
//modify kings 2001-2-20
//1.取得每月天数的函数
//参数说明:month--月;year--年
// 返回值:days--天数
function getdaysinmonth(month,year) {
var days;
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) days=31;
else if (month==4 || month==6 || month==9 || month==11) days=30;
else if (month==2) {
if (isleapyear(year)) { days=29; }
else { days=28; }
}
return (days);
}
//2.判断是否为润年的函数
//参数说明:year--年份
// 返回值:如果是润年,返回true;否则返回false.
function isleapyear (year) {
if (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0)) {
return (true);
} else { return (false); }
}
function ischarnum(str)
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
if((str.charat(ilen)!='x'))
return false;
}
}
return true;
}
function ischarsf(str)
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
if(str.charat(ilen) < 'a' || str.charat(ilen) > 'z' )
return false;
}
}
return true;
}
//判断一个字符串是否是由数字和"-"组成
function ismonth(str)
{
for(ilen=0;ilen<str.length;ilen++)
{
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' )
{
if((str.charat(ilen)!='-'))
return false;
}
}
return true;
}
//弹出对话框
function popmodaldialog(url,args,height,width){
return window.showmodaldialog(url,args,"dialogheight:"+height+"px;dialogwidth:"+width+"px;center:yes;help:no;resizable:no;status:no;");
}