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
%
>

  

原文地址:https://www.cnblogs.com/webczw/p/2104637.html