2008年8月30日星期六

Javascript 函数


  1. 检测输入框不能为空

  2. 将一个变量转换为对象

  3. 判断是否大于某个数

  4. 判断是否小于某个数

  5. 判断是否是数字

  6. 判断是否是价格

  7. 判断是否是空

  8. 判断是否是空格

  9. 取得焦点

  10. 判断是否是整数

  11. 判断是否是日期

  12. 判断是否有有效数据被选中

  13. 检查是否是字符

  14. 检查是否是其它可以作名称的字符

  15. 检查是否是密码

  16. 检查是否是email

  17. 检查是否是邮编

  18. 检查是否是数字字符串

  19. 去掉字符串两边空格

  20. 判断一个字符串是否由数字(int or long)组成

  21. 判断一个字符串是否由数字(int or long or float)组成

  22. 判断一个字符串是否由数字或 '-','*' 组成

  23. 比较两个日期的大小

  24. 去掉字符串所有空格

  25. 转化日期

  26. 取得每月天数的函数

  27. 判断字符串由字符串和数字组成

  28. 判断一个字符串是否是由数字和"-"组成

  29. 弹出对话框



检测输入框不能为空

[js]
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;
}
[/js]

将一个变量转换为对象

[js]
function var_to_obj(val) {
this.value=val;
}
[/js]
判断是否大于某个数

[js]
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);
}
[/js]

判断是否小于某个数

[js]
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);
}
[/js]

判断是否是数字

[js]
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);
}
[/js]

判断是否是价格

[js]
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);
}
[/js]

判断是否是空

[js]
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);
}
[/js]

判断是否是空格

[js]
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="";
}
}
[/js]

取得焦点

[js]
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();
}
}
}
[/js]

判断是否是整数

[js]
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);
}
[/js]

判断是否是日期

[js]
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);
}
[/js]

判断是否有有效数据被选中

[js]
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);
}
[/js]

检查是否是字符

[js]
function ischaracter( ccharacter ) {
var sformat = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";

if( sformat.indexof( ccharacter, 0 ) == -1 ) {
return false;
}

return true;
}
[/js]

判断是否是数字和字母的组合

[js]
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;
}
[/js]

检查是否是其它可以作名称的字符

[js]
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;
}
[/js]

检查是否是密码

[js]
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;
}
[/js]

检查是否是email

[js]
// 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;
}
[/js]

检查是否是邮编

[js]
// 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;
}
[/js]

检查是否是数字字符串

[js]
// svalue: 输入值
function isdigitalstring( svalue ) {
if( svalue == null ) {
return false;
}

for( i = 0; i < svalue.length; i ++ ) {
if( isdigital( svalue.charat( i ) ) == false ) {
return false;
}
}
}
[/js]

判断一个字符串是否为空

[js]
function isempty(his) {
flag = true;
for(var i=0;i < his.length;i++) {
if(his.charat(i)!=" ") {
flag = false;
break;
}
}
return flag;
}
[/js]

去掉字符串两边空格

[js]
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;
}
[/js]

判断一个字符串是否由数字(int or long)组成

[js]
function isdigital(str) {
for(ilen=0;ilen < str.length;ilen++) {
if(str.charat(ilen) < '0' || str.charat(ilen) > '9' ) {
return false;
}
}
return true;
}
[/js]

判断一个字符串是否由数字(int or long or float)组成

[js]
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;
}
[/js]

判断一个字符串是否由数字或'-','*'组成

[js]
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;
}
[/js]

比较两个日期的大小

[js]
//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;
}
}
}
return false;
}
[/js]

去掉字符串所有空格

[js]
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);
}
[/js]

转化日期

[js]
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)
}
[/js]

取得每月天数的函数

[js]
//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);
}
}
[/js]


判断字符串由字符串和数字组成

[js]
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;
}
[/js]

判断一个字符串是否是由数字和"-"组成

[js]
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;
}
[/js]

弹出对话框

[js]
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;");
}
[/js]

没有评论:

发表评论