• ASP不可遗弃的通用函数


    <%
    function ccdate(str)'自定义日期类型转换函数

    if isnull(str) or str="" then
    ccdate
    =""
    elseif isdate(str) then

    if FormatDateTime(str,vbShortDate)=FormatDateTime("1900-1-1",vbShortDate) then
    ccdate
    =""
    else
    ccdate
    =FormatDateTime(str,vbShortDate)

    end if

    end if

    end function

    'set_date_null将不合法的日期和空值转换成null值,便于提交数据库时验证
    '
    编写时间:2005-11-24
    '
    编写人:kevin jan
    function set_date_null(str)

    if isnull(str) or str="" then
    set_date_null
    = null
    elseif isdate(str) then

    if FormatDateTime(str,vbShortDate)="1900-1-1" then
    set_date_null
    = null
    else
    set_date_null
    =FormatDateTime(str,vbShortDate)

    end if

    end if

    end function

    'set_int_null将不合法的整型数据转换成null值,便于提交数据库时验证
    '
    编写时间:2005-12-08
    '
    编写人:kevin jan
    function set_int_null(str)

    if isnull(str) or str="" then
    set_int_null
    = null
    else
    if IsNumeric(str) then
    set_int_null
    =cint(str)
    else
    set_int_null
    =null
    end if
    end if

    end function

    '处理数字客户端显示函数(要显示千位号)
    function formatNumEx(tempValue,T_Type)
    dim myValue,myStr,i,mylenth,loopNum,modNum,mySubStr
    myValue
    =tempValue
    if t_type="money" then myValue=ccsn(tempValue)
    if t_type="int" then myValue=ccint(tempValue)
    if t_type="float" then myValue=ccsn(tempValue)
    if T_Type="" then
    T_Type
    ="float"
    myValue
    =ccsn(tempValue)
    end if
    if isnull(myValue) or myValue="" or not IsNumeric(myValue) then myValue=0
    select case T_Type

    case "int" '整数
    myStr=FormatNumber(ccint(myValue),0,-1,0,-2)
    case "money" '货币
    'myStr=FormatNumber(myValue,2,-1,0,-2)
    'myStr=FormatCurrency(ccsn(myValue),-1,-1,0,-2)
    myStr=replace(FormatCurrency(ccsn(myValue),-1,-1,0,-2),"","")'去掉币符
    case "float"
    'myStr=FormatNumber(myValue,-1,-1,0,-2)
    arrNum=split(ccsn(myValue),".")

    mylenth
    =len(arrNum(0))
    if mylenth>3 then
    loopNum
    =mylenth\3
    modNum
    =mylenth mod 3 '余数

    if modNum<>0 then myStr=mid(myValue,1,modNum)

    for i=1 to loopNum

    mySubStr
    =mid(myValue,modNum+1+(i-1)*3,3)

    if myStr="" then
    myStr
    =mySubStr
    else
    myStr
    =myStr&","&mySubStr
    end if

    next
    else

    myStr
    =arrNum(0)

    end if

    if cint(ubound(arrNum))<>0 then
    myStr
    =myStr&"."&arrNum(1)
    end if

    case else
    end select

    formatNumEx
    =myStr

    end function




    function ccint(strr) '自定义整型数据转换函数

    dim str
    str
    =cCstr(strr)

    if isnull(str) or str="" then
    ccint
    =0
    else
    if IsNumeric(str) then
    ccint
    =clng(str)
    else
    ccint
    =0
    end if
    end if

    end function



    function cCSn(strr) '自定义浮点型数据转换函数
    dim str
    str
    =cCstr(strr)

    if isnull(str) or str="" then
    cCSn
    =0
    else
    if IsNumeric(str) then
    'cCSn=formatNumEx(str,"float")
    cCSn=Round(str,6)
    else
    cCSn
    =0
    end if
    end if
    end function



    function cCstr(str) '自定义字符型数据转换函数

    Dim RegExpObj
    Dim resultStr,checkStr
    if isnull(str) then
    cCstr
    =""
    else
    '剔除多余空格
    checkStr=str
    do while Instr(checkStr," ")
    checkStr
    =Replace(checkStr," "," ") '将两个连续的空格替换为一个空格
    loop
    checkStr
    = Trim(checkStr)

    '过滤非法字符,不允许字符有:<>'&/\%;
    '
    Set RegExpObj=new RegExp
    '
    RegExpObj.Global = True
    '
    RegExpObj.Pattern = "[<>\'\;\%\&\/\\]"
    '
    resultStr = RegExpObj.replace(checkStr, "")
    '
    Set RegExpObj=Nothing
    '
    '
    resultStr =replace(resultStr,Chr("34"),"") '过滤"号

    cCstr
    =checkStr
    end if

    end Function




    function Replacestr(str) '增加一个字符串过滤函数,可以过滤特殊非法字符

    Dim RegExpObj
    Dim resultStr,checkStr
    checkStr
    = str

    if isnull(str) then
    Replacestr
    =""
    else
    '剔除多余空格
    do while Instr(checkStr," ")
    checkStr
    =Replace(checkStr," "," ") '将两个连续的空格替换为一个空格
    loop

    resultStr
    =replace(checkStr,Chr("34"),"") '过滤"号

    resultStr
    =replace(resultStr,Chr("60"),"") '过滤<号

    resultStr
    =replace(resultStr,Chr("62"),"") '过滤>号

    resultStr
    =replace(resultStr,Chr("38"),"and") '过滤&号

    resultStr
    =replace(resultStr,Chr("39"),"") '过滤'号

    'resultStr =replace(resultStr,Chr("37"),"(百分比)") '过滤%号

    Replacestr
    =resultStr

    end if

    end function


    function cccur(strr) '自定义货币类型数据转换函数
    dim str

    str
    =cCstr(strr)

    if isnull(str) or str="" then
    cccur
    =0
    else
    str
    =replace(str,"","")
    str
    =replace(str,"$","")
    if IsNumeric(str) then
    'cccur=formatNumEx(str,"money")
    cccur=Round(str,2)
    else
    cccur
    =0
    end if
    end if

    end function


    function ccbool(str) '自定义bit bool 型数据转换函数

    if isnull(str) or str="" then
    ccbool
    =false
    Else
    If "False"=str Or "True"=str Then
    ccbool
    =cbool(str)
    Else
    if ccint(str)=0 then
    ccbool
    =false
    elseif ccint(str)=1 then
    ccbool
    =True
    Else
    ccbool
    =cbool(str)
    End if
    End If
    end if

    end function



    function fFormatNumber(str,t1,t2) '自定义格式化数字函数 t1 小数点后位数 t2 是否显示小数前的0

    if isnull(str) or str="" then str=0

    if IsNumeric(str) then
    fFormatNumber
    =FormatNumber(str,ccint(t1),ccint(t2))
    else
    fFormatNumber
    =FormatNumber(0,ccint(t1),ccint(t2))
    end if


    end function


    function fill_blank(str) '函数作用,对参数进行判断,如果为空或 null则返回 &nbsp;空格,这样来维护表格线的完整

    if isnull(str) or str="" then
    fill_blank
    ="&nbsp;"
    else
    fill_blank
    =str
    end if
    end function

    function fill_blank2(str) '函数作用,同上,此函数一般在会出现js中使用,因为&nbsp;的 ;号,没有转义则不能正常显示

    if isnull(str) or str="" then
    fill_blank2
    =" "
    else
    fill_blank2
    =str
    end if
    end function

    Function long_check(info,s_num) '取定长字数函数, info需要进行截取的字符串,s_num截取得长度

    if isnull(info) then info=""
    if len(trim(info))>ccint(s_num) then
    long_check
    =left(trim(info),ccint(s_num)-2)&".."
    else
    long_check
    =trim(info)
    end if
    end Function

    %
    >

      

    <%
    function GetchinaMoney(a)' 得到中文的大写货币

    if a<>"" then
    a
    =cccur(a)
    a
    =abs(a)
    'a 要转换成大写的金额
    dim atoc '转换之后的值
    Dim String1 '如下定义
    Dim String2 '如下定义
    Dim String3 '从原A值中取出的值
    Dim I '循环变量
    Dim J 'A的值乘以100的字符串长度
    Dim Ch1 '数字的汉语读法
    Dim Ch2 '数字位的汉字读法
    Dim nZero '用来计算连续的零值是几个

    String1
    = "零壹贰叁肆伍陆柒捌玖"
    String2
    = "万仟佰拾亿仟佰拾万仟佰拾元角分"
    nZero
    = 0
    'response.write CStr(a * 100)
    if a>1000000000000 then
    atoc
    ="零元整"
    else
    If InStr(1, CStr(a * 100), ".") <> 0 Then
    err.Raise
    5000, , "此函数( AtoC() )只能转换小数点后有两位以内的数!"
    End If

    J
    = Len(CStr(a * 100))
    String2
    = Right(String2, J) '取出对应位数的STRING2的值

    For I = 1 To J
    String3
    = Mid(a * 100, I, 1) '取出需转换的某一位的值

    If I <> (J - 3) + 1 And I <> (J - 7) + 1 And I <> (J - 11) + 1 And I <>(J - 15) + 1 Then
    If String3 = 0 Then
    Ch1
    = ""
    Ch2
    = ""
    nZero
    = nZero + 1
    ElseIf String3 <> 0 And nZero <> 0 Then
    Ch1
    = "" & Mid(String1, clng(String3) + 1, 1)
    Ch2
    = Mid(String2, I, 1)
    nZero
    = 0
    Else
    Ch1
    = Mid(String1, clng(String3) + 1, 1)
    Ch2
    = Mid(String2, I, 1)
    nZero
    = 0
    End If
    Else '该位是万亿,亿,万,元位等关键位
    If String3 <> 0 And nZero <> 0 Then
    Ch1
    = "" & Mid(String1, clng(String3) + 1, 1)
    Ch2
    = Mid(String2, I, 1)
    nZero
    = 0
    ElseIf String3 <> 0 And nZero = 0 Then
    Ch1
    = Mid(String1, clng(String3) + 1, 1)
    Ch2
    = Mid(String2, I, 1)
    nZero
    = 0
    ElseIf String3 = 0 And nZero >= 3 Then
    Ch1
    = ""
    Ch2
    = ""
    nZero
    = nZero + 1
    Else
    Ch1
    = ""
    Ch2
    = Mid(String2, I, 1)
    nZero
    = nZero + 1
    End If

    If I = (J - 11) + 1 Or I = (J - 3) + 1 Then '如果该位是亿位或元位,则必须写上
    Ch2 = Mid(String2, I, 1)
    End If

    End If
    AtoC
    = AtoC & Ch1 & Ch2

    If I = J And String3 = 0 Then '最后一位(分)为0时,加上“整”
    AtoC = AtoC & ""
    End If

    Next
    if a=0 then
    atoc
    ="零元整"
    end if
    end if
    GetchinaMoney
    =atoc
    else
    GetchinaMoney
    =""
    end if

    end function


    function Getchinanum(a)' 得到中文的数字

    if a<>"" then

    a
    =ccint(a)

    Dim String1 '如下定义
    Dim String2 '如下定义
    Dim String3 '从原A值中取出的值

    Dim Ch '数字位的汉字


    String1
    = "零一二三四五六七八九十"
    String2
    = "万千百十亿千百十万千百十"



    J
    = Len(CStr(a))
    ch
    =""

    For I = 1 To J
    String3
    = Mid(a, I, 1) '取出需转换的某一位的值


    Ch
    = ch & Mid(String1, cint(String3)+1, 1)


    Next

    Getchinanum
    =Ch
    else
    Getchinanum
    =""
    end if

    end function
    %
    >

      

  • 相关阅读:
    一文说透 Spring 循环依赖问题
    git修改已经push的commit message
    Connection Timeout 和CommandTimeout
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    asp.net mvc与asp.net core Ajax删除操作delete中带ValidateAntiForgeryToken实例
    VS2017秘钥
    Sql server 2008 R2 配置管理工具服务显示远程过程调用失败:0x800706be
    SQL Server 2008找不到SQL Server配置管理器的问题
    如何为SQL Server2008添加登录账户并配置权限
  • 原文地址:https://www.cnblogs.com/webczw/p/2104637.html
Copyright © 2020-2023  润新知