常用js(一)

来源:互联网 发布:mac安装win7 u盘 编辑:程序博客网 时间:2024/06/09 21:38

常用js(一)

<body onunload="javascript:alert('确定关闭吗?')">

限制文本矿只能输入0-9
<body>
<input onkeyup="this.value=this.value.replace(//D/g,'')" onafterpaste="this.value=this.value.replace(//D/g,'')">
</body>

一、验证类
1、数字验证内
  1.1 整数
      /^(-|/+)?/d+$/.test(str)
  1.2 大于0的整数 (用于传来的ID的验证)
      /^/d+$/.test(str)
  1.3 负整数的验证
      /^-/d+$/.test(str)
2、时间类
  2.1 短时间,形如 (13:04:06)
      function isTime(str)
      {
        var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);
        if (a == null) {alert('输入的参数不是时间格式'); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("时间格式不对");
          return false
        }
        return true;
      }
  2.2 短日期,形如 (2003-12-05)
      function strDateTime(str)
      {
         var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1, r[4]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
      }
  2.3 长时间,形如 (2003-12-05 13:04:06)
      function strDateTime(str)
      {
        var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
      }
  2.4 只有年和月。形如(2003-05,或者2003-5)
  2.5 只有小时和分钟,形如(12:03)
3、表单类
  3.1 所有的表单的值都不能为空
      <input onblur="if(this.value.replace(/^/s+|/s+$/g,'')=='')alert('不能为空!')">
  3.2 多行文本框的值不能为空。
  3.3 多行文本框的值不能超过sMaxStrleng
  3.4 多行文本框的值不能少于sMixStrleng
  3.5 判断单选框是否选择。
  3.6 判断复选框是否选择.
  3.7 复选框的全选,多选,全不选,反选
  3.8 文件上传过程中判断文件类型
4、字符类
  4.1 判断字符全部由a-Z或者是A-Z的字字母组成
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
  4.2 判断字符由字母和数字组成。
      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
  4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
      /^([a-zA-z_]{1})([/w]*)$/g.test(str)
  4.4 字符串替换函数.Replace();
5、浏览器类
  5.1 判断浏览器的类型
      window.navigator.appName
  5.2 判断ie的版本
      window.navigator.appVersion
  5.3 判断客户端的分辨率
      window.screen.height;  window.screen.width;
 
6、结合类
  6.1 email的判断。
      function ismail(mail)
      {
        return(new RegExp(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/).test(mail));
      }
  6.2 手机号码的验证
  6.3 身份证的验证
      function isIdCardNo(num)
      {
        if (isNaN(num)) {alert("输入的不是数字!"); return false;}
        var len = num.length, re;
        if (len == 15)
          re = new RegExp(/^(/d{6})()?(/d{2})(/d{2})(/d{2})(/d{3})$/);
        else if (len == 18)
          re = new RegExp(/^(/d{6})()?(/d{4})(/d{2})(/d{2})(/d{3})(/d)$/);
        else {alert("输入的数字位数不对!"); return false;}
        var a = num.match(re);
        if (a != null)
        {
          if (len==15)
          {
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          else
          {
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
        }
        return true;
      }

'********************************************
'函数功能:正则表达式校验
'参数patrn:要校验的类型
'   "User"                        - 用户名
'   "Truename"                - 英文姓名
'   "Passwd"                - 密码
'   "Tel"                        - 电话/传真
'   "Mobil"                        - 手机
'   "Date"                        - 日期(格式:yyyy-mm-dd)
'   "Email"                        - 电子邮件
'   "Postalcode"        - 邮政编码
'   "Search"                - 搜索关键字
'   "Int"                        - 整数
'参数strng:要校验的字串
'返回值:校验结果,正确返回true,错误返回false
'********************************************
Function IsVerify(patrn,strng)
        strng=Trim(strng)
        Select Case patrn
                Case "User"        '用户名
                        patrn="^[a-z]{1}([a-z0-9]|[._]){2,19}$"
                Case "Truename"        '英文姓名
                        patrn="^[a-zA-Z]{1,30}$"
                Case "Passwd"                '密码
                        patrn="^(/w){6,20}$"
                Case "Tel"                        '电话/传真
                        patrn="^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$"
                Case "Mobil"                '手机
                        patrn="^(/d)+[-]?(/d){6,12}$"
                Case "Date"                        '日期(格式:yyyy-mm-dd)
                        patrn="^[12]{1}(/d){3}[-][01]?(/d){1}[-][0123]?(/d){1}$"
                Case "Email"                '电子邮件
                        patrn="^((/w)|[-]|[.])+@(((/w)|[-])+[.])+[a-z]{2,4}$"
                Case "Postalcode"                '邮政编码
                        patrn="^[a-z0-9 ]{3,12}$"
                Case "Search"                '搜索关键字
                        patrn="^[^`~!@#$%^&*()+=|///[/]/{/}:;/'/,.<>/?]{1}[^`~!@$%^&()+=|///[/]/{/}:;/'/,.<>?]{0,19}$"
                Case "Int"                '整数
                        patrn="^[1-9]{1}[0-9]{0,6}$"
                Case "Array"
                        patrn="^[0-9]{1}([0-9]|[/,]){0,150}$"
        End Select
        Dim regEx
        Dim Match
        Set regEx = New RegExp
        regEx.Pattern = patrn
        regEx.IgnoreCase = True
        regEx.Global = True
        Matches = regEx.test(strng)
        IsVerify = Matches
        Set regEx = Nothing
End Function

'********************************************
'函数功能:对输入框的特殊字串进行过滤保存
'参数strPass:过滤前的字符串
'返回值:过滤后的字符串
'********************************************
Function SQLencode(byVal strPass)
        strPass = Replace(strPass, "&", "&amp;")
        strPass = Replace(strPass, "<", "&lt;")
        strPass = Replace(strPass, ">", "&gt;")
        strPass = Replace(strPass, """", "&quot;")
        strPass = Replace(strPass, "'", "&#39;")
        strPass = Replace(strPass, "  ", " ")
        strPass = Replace(strPass,chr(13)&chr(10),"<br/>")
        SQLencode = strPass
End Function

'********************************************
'函数功能:对SQLencode函数过滤后的字符串进行还原
'参数strPass:经过过滤后的字符串
'返回值:还原的过滤前的字符串
'********************************************
Function SQLdecode(byVal strPass)
        If Not isNull(strPass) Then
                strPass = Replace(strPass, "&lt;", "<")
                strPass = Replace(strPass, "&gt;", ">")
        strPass = Replace(strPass, "&quot;","""" )
        strPass = Replace(strPass, "&#39;","'" )
                strPass = Replace(strPass,"<br/>",chr(13)&chr(10))
        End If
        SQLdecode = strPass
End Function

'********************************************
'函数功能:生成随机密码(字符为数字与大小写字母集合)
'参数length:密码长度
'返回值:随机密码
'********************************************
Function random(length)
        Dim n,str
        rnds=""
        Randomize
        For i=1 To length
                n=Int(75*Rnd+48)
                If (n>57 and n<65) Or (n>90 and n<97) Then
                        i=i-1
                Else
                        rnds=rnds&Chr(n)
                End If
        Next
        random=rnds
End Function

'********************************************
'函数功能:对密码进行加密/解密(最大长度为15位)
'********************************************
Function Encrypt(preString)
        Dim pwds,s
        pwds=""
        s=Left(preString,15)
        For i=1 To Len(s)
                seed=170-Asc(Mid(s,i,1))-i
                pwds=pwds & Chr(seed)
        Next
        Encrypt=pwds
End Function

'********************************************
'函数功能:格式化当前时间字串
'参数:无
'返回值:返回当前时间的纯数字字符串方式的表示(例如:当前时间2001-10-3 2:34:6,返回字符串"20011003023406")
'********************************************
Function TheDate()
  y=year(date())
  m=month(date())
  d=day(date())
  h=Hour(time())
  n=Minute(time())
  s=Second(time())
  If Len(m)=1 Then m="0"&m
  If Len(d)=1 Then d="0"&d
  If Len(h)=1 Then h="0"&h
  If Len(n)=1 Then n="0"&n
        If Len(s)=1 Then s="0"&s
  thedate=y&m&d&h&n&s
End Function

'********************************************
'函数功能:返回字符串的长度
'参数:字符串
'返回值:字符串长度
'********************************************
Function strLen(str)
        dim p_len
        p_len=0
        strlen=0
        if trim(str)<>"" then
                p_len=len(trim(str))
                for xx=1 to p_len
                        if asc(mid(str,xx,1))<0 then
                                strlen=int(strlen) + 2
                        else
                                strlen=int(strlen) + 1
                        end if
                next
        end if
End Function

'********************************************
'函数功能:发送邮件通知
'参数:字符串
'返回值:成功/失败
'********************************************
Function SendMail(ToAddress, Subject, Body)
        On Error Resume Next
        Set objMail = Server.CreateObject("JMail.Message")
        objMail.From = ADR_Email
        objMail.FromName = "ADR管理中心"
        objMail.Subject = Subject
        objMail.AddRecipient ToAddress
        objMail.Body = Body
        If objMail.Send("") Then
                SendMail = True
        Else
                SendMail = False
        End If
        If Err.Number<> 0 Then SendMail = False
        Set objMail = Nothing
        On Error Goto 0
End Function
%>

//校验数字:0-9数字的组合
function isDigit(s)
{
        var patrn=/^[0-9]{1,20}$/;
        if (!patrn.exec(s)) return false
        return true
}

//检验法人代码
function isCorporationCode(s){
        var patrn=/^(/d){15}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
function isRegisterUserName(s)
{
        var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9._]){4,19}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验用户姓名:只能输入1-30个以字母开头的字串
function isTrueName(s)
{
        var patrn=/^[^`~!@#$%^&*()+-=|///[/]/{/}:;/'/,.<>/? 0-9]{2,19}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验密码:只能输入6-15个字母、数字
function isPasswd(s)
{
        var patrn=/^[a-zA-Z0-9]{6,15}$/;
        if (!patrn.exec(s)) return false
        return true
}

//检验体重
function isAvoirdupois(s)
{
        var patrn=/^[1-9]{1}[0-9]{0,2}$/;
        var patrn2=/^[1-9]{1}$/;
        var intPart=s.indexOf('.');
        var decPart=s.lastIndexOf('.');
        if (intPart==-1 && patrn.exec(s) && eval(s)>=2 && eval(s)<=200) return true
        if (intPart!=decPart || intPart==0 || intPart+2!=s.length) return false
        if (!patrn.exec(s.substring(0,intPart)) || !patrn2.exec(s.substring(decPart+1))) return false
        if (eval(s)<2 || eval(s)>200) return false
        return true
}

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
function isTel(s)
{
        var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验手机号码:必须以数字开头,除数字外,可含有“-”
function isMobile(s)
{
        var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验地区代码
function isAreaCode(s)
{
        var patrn=/^(/d){6}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验邮政编码
function isPostalCode(s)
{
        var patrn=/^[1-9]{1}(/d){5}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验搜索关键字
function isSearch(s)
{
        var patrn=/^[^`~!@#$%^&*()+=|///[/]/{/}:;/'/,.<>/? ]{1}[^`~!@$%^&()+=|///[/]/{/}:;/'/,.<>?]{0,19}$/;
        if (!patrn.exec(s)) return false
        return true
}

//校验是否为ip地址
function isIP(s)
{
        var patrn=/^[0-9.]{1,20}$/;
        if (!patrn.exec(s)) return false
        return true
}

//检验页码是否正确
function isPage(s)
{
        var patrn=/^[1-9]{1}[0-9]{0,2}$/;
        if (!patrn.exec(s)) return false
        return true
}

//表单输入值错误提示
function vErr(o,s){
        alert(s);
        if (o) o.focus();
        return false;
}

//判断单选
function chkRadio(o){
        for (i=0;i<o.length;i++){
                if (o[i].checked) return true;
        }
        return false;
}


自己写的一个比较丑的程序,但做报表时候有用
/********************************************************************
时间:2003.7.31
作者:周长武
功能:将阿拉伯数字(小写)转化成中文(大写)
       
参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")
说明:1.目前本转换仅支持到 拾亿(元) 位,金额单位为元,不能为万元,最小单位为分
          2.不支持负数
修改区

时间:
修改人:
原因:

修改区结束
********************************************************************/
function Arabia_to_Chinese(Num){
        for(i=Num.length-1;i>=0;i--)
        {
                Num = Num.replace(",","")//替换tomoney()中的“,”
                Num = Num.replace(" ","")//替换tomoney()中的空格
        }
        Num = Num.replace("¥","")//替换掉可能出现的¥字符
        if(isNaN(Num)) {        //验证输入的字符是否为数字
                alert("请检查小写金额是否正确");
                return;
        }
        //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
        part = String(Num).split(".");
        newchar = "";
        //小数点前进行转化
        for(i=part[0].length-1;i>=0;i--){
        if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
                tmpnewchar = ""
                perchar = part[0].charAt(i);
                switch(perchar){
                                case "0": tmpnewchar="零" + tmpnewchar ;break;
                                case "1": tmpnewchar="壹" + tmpnewchar ;break;
                                case "2": tmpnewchar="贰" + tmpnewchar ;break;
                                case "3": tmpnewchar="叁" + tmpnewchar ;break;
                                case "4": tmpnewchar="肆" + tmpnewchar ;break;
                                case "5": tmpnewchar="伍" + tmpnewchar ;break;
                                case "6": tmpnewchar="陆" + tmpnewchar ;break;
                                case "7": tmpnewchar="柒" + tmpnewchar ;break;
                                case "8": tmpnewchar="捌" + tmpnewchar ;break;
                                case "9": tmpnewchar="玖" + tmpnewchar ;break;
                }
                switch(part[0].length-i-1){
                                case 0: tmpnewchar = tmpnewchar +"元" ;break;
                                case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
                                case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
                                case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
                                case 4: tmpnewchar= tmpnewchar +"万" ;break;
                                case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
                                case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
                                case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
                                case 8: tmpnewchar= tmpnewchar +"亿" ;break;
                                case 9: tmpnewchar= tmpnewchar +"拾" ;break;
                }
                newchar = tmpnewchar + newchar;
        }
        //小数点之后进行转化
        if(Num.indexOf(".")!=-1){
        if(part[1].length > 2) {
                alert("小数点之后只能保留两位,系统将自动截段");
                part[1] = part[1].substr(0,2)
                }
        for(i=0;i<part[1].length;i++){
                tmpnewchar = ""
                perchar = part[1].charAt(i)
                switch(perchar){
                                case "0": tmpnewchar="零" + tmpnewchar ;break;
                                case "1": tmpnewchar="壹" + tmpnewchar ;break;
                                case "2": tmpnewchar="贰" + tmpnewchar ;break;
                                case "3": tmpnewchar="叁" + tmpnewchar ;break;
                                case "4": tmpnewchar="肆" + tmpnewchar ;break;
                                case "5": tmpnewchar="伍" + tmpnewchar ;break;
                                case "6": tmpnewchar="陆" + tmpnewchar ;break;
                                case "7": tmpnewchar="柒" + tmpnewchar ;break;
                                case "8": tmpnewchar="捌" + tmpnewchar ;break;
                                case "9": tmpnewchar="玖" + tmpnewchar ;break;
                }
                if(i==0)tmpnewchar =tmpnewchar + "角";
                if(i==1)tmpnewchar = tmpnewchar + "分";
                newchar = newchar + tmpnewchar;
        }
        }
        //替换所有无用汉字
        while(newchar.search("零零") != -1)
                newchar = newchar.replace("零零", "零");
        newchar = newchar.replace("零亿", "亿");
        newchar = newchar.replace("亿万", "亿");
        newchar = newchar.replace("零万", "万");
        newchar = newchar.replace("零元", "元");
        newchar = newchar.replace("零角", "");
        newchar = newchar.replace("零分", "");

        if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
                newchar = newchar+"整"
        return newchar;
}

// =============================时间类========================================
//短时间(形如:  13:04:06)
//更具弹性的正则表达式:/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/
function isShortTime(elem){
        var pattern=/^([0-9]{1,2})(:)([0-9]{1,2})(:)([0-9]{1,2})$/;
        var temp=elem.match(pattern);
        if(temp==null)
                return false;
        if(temp[1]>24)
                return false;
        if(temp[3]>60)
                return false;
        if(temp[5]>60)
                return false;
        return true;
}
//短日期(形如: 2003-12-18)
//更具弹性的正则表达式:/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/
function isShortDate(elem){
  var pattern=/^(/d{4})(-)(/d{2})(-)(/d{2})$/;
  var temp=elem.match(pattern);
  if(temp==null){
    return  false;
  }
  //
  var d=new Date(temp[1]+"/"+temp[3]+"/"+temp[5]);
  return d.getFullYear()==temp[1]&&
         (d.getMonth()+1)==temp[3]&&
                 d.getDate()==temp[5];
}
//长时间,形如(2003-12-18 13:04:06)
//更具弹性的正则表达示/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/
function  isTime(elem){
        var pattern=/^(/d{4})(-)(/d{2})(-)(/d{2})(/s+)(/d{2})(:)(/d{2})(:)(/d{2})$/;
        var temp=elem.match(pattern);
        if(temp==null) return false;
        //date(year,month,date, hour,minutes,seconds)
        var d=new Date(temp[1],temp[3]-1,temp[5],temp[7],temp[9],temp[11]);
        return d.getFullYear()==temp[1]&&
                        (d.getMonth()+1)==temp[3]&&
                         d.getDate()==temp[5]&&
                         d.getHours()==temp[7]&&
                         d.getMinutes()==temp[9]&&
                         d.getSeconds()==temp[11];
}
//只有年月  形如:  2003-12
function isDate(elem){
        var pattern=/^([0-9]{4}|[0-9]{2})-([0-9]{1,2})$/;
        var temp=elem.match(pattern);
        if(temp==null) return false;
        //Date(year,month)
        var d=new Date(temp[1],temp[2]-1);
        return d.getYear()==temp[1]&&(d.getMonth()+1)==temp[2];
}
//只有小时与分 形如:  04:47
//timePat=/^([1-9]|1[0-2]):[0-5]d$/;
function isTM(elem){
        var pattern=/^(/d{1,2})(-|//|:)(/d{1,2})$/;
        var temp=elem.match(pattern);
        if(temp==null) return false;
        var hour=parseInt(temp[1]);
        var mint=parseInt(temp[3]);
        if(hour>24) return false;
        if(hour<0) return false;
        if(mint>60) return false;
        if(mint<0) return false;

        return true;
}
//判断leapYear  (格式2003-12-18)   (没有测试)
function isLeapYear(elem){
        //选用上面的函数检验elem的有效性
        if(isShortDate(elem)==false){
                //输入的时间不格式不正确
                return false;
        }
        var temp=elem.split("-");
        var year=parseInt(temp[0]);
        if((year%100)==0){
                return (year%400)==0;
        }else{
                return (year%4)==0;
        }
}
               

// *******************************************************结束时间类*******************************************

 
原创粉丝点击