<
%
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则返回 空格,这样来维护表格线的完整
if
isnull
(str)
or
str
=
""
then
fill_blank
=
"
"
else
fill_blank
=
str
end
if
end function
function
fill_blank2(str)
'
函数作用,同上,此函数一般在会出现js中使用,因为 的 ;号,没有转义则不能正常显示
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
%
>