常用js函数

简介:

/*------------------------------------------------------------
 dateDlg(inputid,initDate,startYear,endYear)  弹出时间窗口
 compareDate(end,s)                           与当前时间比较
 compareTwoDate(startDate,endDate,s)          比较两个时间
 isNumber(text,name)                          判断全是数字(true)                          
 isChar(text,addtemp,name,include)            判断符合要求字符
 isEmail(text)                                判断是电子邮件
 isPid(text)                                  判断是身份证号
 isNull(text,name)                            判断为空则提示(true)
 getLength(text)                              获取长度
 lengthEquals(text,name,num)                  确定长度(true)
 lengthless(text,name,num)             长度不少于(true)
 lengthmore(text,name,num)             长度不大于(true)
        checkPassword(text,text1)                    检验两次输入密码是否一致(true)
  ------------------------------------------------------------ 
//checkData()放在jsp页面
<script language="JavaScript" src="check.js"></script>
<script language="JavaScript">
function checkData()
{
 if(isNull(form1.name,'帐号')){}
 else if(lengthEquals(form1.name,"帐号",8)){}
 else if (getLength(form1.name)>13){}
 else{
  form1.submit();
 }  
}
</script>
  ------------------------------------------------------------
*/

/*------------------------------------------------------------
 弹出时间选择小控件
 inputid--文本框name
 initDate--初始日期,为空时是当前时间
 startYear--日期范围的开始日期
 endYear--日期范围的结束日期
 使用例子onClick="dateDlg(end,'1999-11-12','1980','2010')"
  ------------------------------------------------------------
*/

function  dateDlg(inputid,initDate,startYear,endYear)
{
 
var pattern = /^(19|20)([0-9]){2}$/;
 flag
=pattern.test(startYear);
 
if(!flag)startYear=1900;
 flag
=pattern.test(endYear);
 
if(!flag)endYear=2050;
 
if(inputid.value==null||inputid.value=='')
  
{
   
if(initDate==null||initDate=='')
   
{
     currentDate 
= new Date();  
   }

   
else{
    currentDate 
= initDate;
   }

  }

 
else
   currentDate 
= inputid.value;
  }

 
var arguments = new Array(startYear,endYear,0,0,0)

 
var pattern = /^(19|20)([0-9]){2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
 flag
=pattern.test(currentDate);
 
if(flag)
 
{
  iYear
=currentDate.substring(0,4);
  iMonth
=currentDate.substring(5,7);
  iDay
=currentDate.substring(8,10);
  arguments 
= new Array(startYear,endYear,iYear,iMonth,iDay)
 }

 showx 
= event.screenX - event.offsetX + 18;
 showy 
= event.screenY - event.offsetY - 210;

 
var features =
  'dialogWidth:'  
+ 192 + 'px;' +
  'dialogHeight:' 
+ 210 + 'px;' +
  'dialogLeft:'   
+ showx     + 'px;' +
  'dialogTop:'    
+ showy     + 'px;' +
  'directories:no; localtion:no; menubar:no; status
=no; toolbar=no;scrollbars:yes;Resizeable=no';
 retval 
= window.showModalDialog("../js/calendar.htm", arguments , features );
 
var calctrl = eval(inputid)
 
if( retval != null ){
  calctrl.value 
= retval;
 }
else{
  
//alert("canceled");
 }

}


/*------------------------------------------------------------
 Trim()去左右空格
  ------------------------------------------------------------
*/


String.prototype.Trim 
=   function ()
{
    
return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.LTrim 
=   function ()
{
    
return this.replace(/(^\s*)/g, "");
}

String.prototype.Rtrim 
=   function ()
{
    
return this.replace(/(\s*$)/g, "");
}

/*------------------------------------------------------------
 判断密码是否有单引号
  ------------------------------------------------------------
*/

function  isNotYinhao(s)
{   
    
var yin;
 
var temp="'";
 
for(yin=0; yin < s.length; yin++ ) 
 

  
var ch = s.charAt(yin);
  
if(temp.indexOf(ch)>=0)
  
{
   
return true;
  }

 }

 
return false;
}


/*------------------------------------------------------------
 定义变量
  ------------------------------------------------------------
*/

var  i,j;

/*------------------------------------------------------------
 和当前日期比较,如果当前日期大于输入日期则提示
 end----输入日期
 s----提示信息
 使用例子onClick="compareDate(end,'选择日期不能在今天之前!')" 
  ------------------------------------------------------------
*/

function  compareDate(end,s) {
var a=new Date();
var b=end.value;
if(((Number(a.getYear())-Number(b.substring(0,4)))*356+
       (Number(a.getMonth())
-Number(b.substring(5,7))+1)*31+
    (Number(a.getDate())
-Number(b.substring(8,10))))>0)
 
{
  alert(s);
  end.focus();
 }

}



/*------------------------------------------------------------
 两个时间进行比较,当开始日期大于结束日期则提示
 startDate----开始日期
 endDate------结束日期
 使用例子onClick="compareTwoDate(startDate,endDate,'开始日期不能大于结束日期!')" 
  ------------------------------------------------------------
*/

function  compareTwoDate(startDate,endDate,s)
{
var a=startDate.value;
var b=endDate.value;
if(((Number(a.substring(0,4))-Number(b.substring(0,4)))*356+
       (Number(a.substring(
5,7))-Number(b.substring(5,7)))*31+
    (Number(a.substring(
8,10))-Number(b.substring(8,10))))>0)
 
{
  alert(s);
  startDate.focus();
 }

}


/*------------------------------------------------------------
 判断是否为数字类型,如不是数字类型则提示
 text-------输入文本
 name-------提示的名字
 使用例子onBlur="compareTwoDate(this,'电话号码')" 
  ------------------------------------------------------------
*/

function  isNumber(text,name)
{
  
var temp="0123456789";
   
for(j=0; j<text.value.length; j++ ) 
   
{    
     
var ch = text.value.Trim().charAt(j);
  
if(temp.indexOf(ch)==-1)
  
{
   alert(name
+"应为数字类型!");
   text.focus();
   
return true;
  }
  
   }

}


/*------------------------------------------------------------
 判断两次密码输入是否一致
 text-------新密码
 name-------再次输入新密码
 使用例子checkPassword(form1.newpass,form1.newpass1) 
  ------------------------------------------------------------
*/

function  checkPassword(text,text1)
{
  
var newpass=text.value.Trim();
  
var newpass1=text1.value.Trim();
  
if(newpass!=newpass1){
    alert(
"两次输入新密码不一致!");
    text.focus();
    
return true;
  }

}



/*------------------------------------------------------------
 判断是否包含非法字符,如含非法字符则提示
 text-------输入文本
 addtemp----除英文和数字外还可包含的字符
 name-------提示的名字
 include----提示中不允许包含的字符
 使用例子onBlur="compareTwoDate(this,'@_','邮件','%*$')" 
  ------------------------------------------------------------
*/

function  isChar(text,addtemp,name,include)
{
  
var temp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"+addtemp;
   
for(j=0; j<text.value.length; j++ ) 
   
{    
     
var ch = text.value.Trim().charAt(j);
  
if(temp.indexOf(ch)==-1)
  
{
   alert(name
+"中不允许包含'"+include+"'等字符!");
   text.focus();
   
break
  }
  
   }

}


/*------------------------------------------------------------
 判断输入的是否为电子邮件,如含非法字符则提示
 text-------输入的电子邮件
 使用例子onBlur="isEmail(this)" 
  ------------------------------------------------------------
*/

function  isEmail(text)
{   
 
var email=text.value.Trim();
 
var m=email.indexOf("@");
 
var n=email.indexOf(".");
 
if(email!="")
 
{
  
if(m<1||m>email.length-3)
  
{
   alert(
"请输入正确的电子邮件格式!");
   text.focus();
   
return true;
  }

  
else if(n<m+2||n>email.length-2)
  
{
   alert(
"请输入正确的电子邮件格式!");
   text.focus();
   
return true;
  }

 }

}

/*------------------------------------------------------------
 判断输入文本是否为身份证号码,如为不正确则提示
 text-------输入的身份证号码
 使用例子onBlur="isPid(this)" 
  ------------------------------------------------------------
*/

function  isPid(text)
{
 
var pid=text.value.Trim();
 
var temp="0123456789";
 
var temp1="0123456789xX";
 
if(pid!=""){
 
if(pid.length==15)
 
{
     
for(j=0; j<15; j++ ) 
     
{    
   
var ch = pid.charAt(j);
   
if(temp.indexOf(ch)==-1)
   
{
    alert(
"请输入正确的身份证号码!");
    text.focus();
    
break
   }

  }
       
 }

 
else if(pid.length==18)
 
{

     
for(j=0; j<pid.length-1; j++ ) 
     
{    
   
var ch = pid.charAt(j);
   
if(temp.indexOf(ch)==-1)
   
{
    alert(
"请输入正确的身份证号码!");
    text.focus();
    
break
   }

  }
       
  
var ch1 = pid.charAt(pid.length-1);
  
if(temp1.indexOf(ch1)==-1)
   
{
    alert(
"请输入正确的身份证号码!");
    text.focus();
   }
    
 }

 
else{
  alert(
"身份证号码的应为15位或18位!");
  text.focus();
 }
}

}


/*------------------------------------------------------------
 判断输入文本是否为空,如为空则提示
 text-------输入文本
 使用例子onBlur="isNull(this,'姓名')" 
  ------------------------------------------------------------
*/

function  isNull(text,name)
{
 
if(text.value.Trim()==null||text.value.Trim()=="")
 
{
  alert(name
+"不能为空!");
  text.focus();
  
return true;
 }

}


/*------------------------------------------------------------
 获取文本框长度,中文作为两个字符处理
 text-------输入文本
 使用例子getLength(form1.name) 
  ------------------------------------------------------------
*/

function  getLength(text)
{
 
var temp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 temp
=temp+"`~!@#$%^&*()_+|-=\[]{};':,./<>?\"";
 temp=temp+
"·~!◎#¥%……※×()——+§-=÷【】『』;‘:“,。、《》?";
 var len = text.value.Trim().length;
 for(j=0;j<text.value.Trim().length;j++)
 {
  var ch= text.value.Trim().charAt(j);
  if(temp.indexOf(ch)==-1){
  len++;
  }
 }
 return len;
}

/*------------------------------------------------------------
 lengthEquals(text,name,num)    相等长度
 lengthless(text,name,num)      长度不少于
 lengthmore(text,name,num)      长度不大于
 获取文本框长度,中文作为两个字符处理
 text-------输入文本
 使用例子getLength(form1.name,'姓名',8) 
  ------------------------------------------------------------*/
function lengthEquals(text,name,num)
{
 if(getLength(text)!=num)
 {
  alert(
"请输入"+num+""+name+"!")
  text.focus();
  return true;
 }
}

function lengthless(text,name,num)
{
 if(getLength(text)<num)
 {
  alert(name+
"不能少于"+num+"!")
  text.focus();
  return true;
 }
}
function lengthmore(text,name,num)
{
 if(getLength(text)>num)
 {
  alert(name+
"不能大于"+num+"!")
  text.focus();
  return true;
 }
}

/*------------------------------------------------------------
 判断bodyText输入文本是否为空,如为空则提示
 bodyText-------输入文本
 使用例子onBlur=
"isNullBody('姓名')" 
  ------------------------------------------------------------*/
function isNullBody(name)
{
  var bodyText = frames[
"Dvbbs_Composition"].document.body.innerText;
  if(bodyText.length==0) {
      frames[
"Dvbbs_Composition"].focus();
      alert(name+
"不能为空!");
      return true;
  }
}


/*------------------------------------------------------------
 获取文本框长度,中文作为两个字符处理
 bodyText-------输入文本
 使用例子isLengthBody(form1.name) 
  ------------------------------------------------------------*/
function isLengthBody(text,name)
{
    if (text.value.length > 600) {
        frames[
"Dvbbs_Composition"].focus();
        alert(name+
"不能超过600!");
 return true;
    }
}


/*------------------------------------------------------------
 检查是否含有”'“号
        有,则返回true
        无, 则返回false
  ------------------------------------------------------------*/
function isTheChar(text,name)
{
    var re= /'/g;
    var arr = text.match(re);
    if (arr == null)
        return false;
    else
        return true;
}




本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/11/18/279686.html,如需转载请自行联系原作者
相关文章
|
3月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
134 19
|
5月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
7月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
157 32
|
6月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
10月前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
12月前
|
JavaScript 前端开发 安全
JavaScript函数详解
JavaScript函数的详细解析,包括函数的定义和调用方式(如一般格式、匿名函数、构造函数、自调用函数、箭头函数和严格模式)、函数参数(arguments对象、可变参数、默认参数值)、闭包的概念和应用实例。
JavaScript函数详解
|
11月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
11月前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
11月前
|
JavaScript 前端开发
js教程——函数
js教程——函数
217 4
|
11月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
96 5