'格式化中文金额的方法
'@ prmtType 为"A" 时表示返回带零的全字串,否则返回中文习惯的金额
'调用方法:FormatChineseMoney(30503.34,"")
Function FormatChineseMoney(prmtMoney,prmtType)
dim strMoney,strMoneyLeft,strMoneyRight
if IsNumeric(prmtMoney) then
strMoney=FormatCurrency(prmtMoney,2,-1,0,0)
dim regMoney
Set regMoney = New RegExp ' 创建正则表达式。
regMoney.Pattern = "^[¥|\$]?[+|-]?(\d+)?(?:\.(\d{1,2}))?$" ' 设置模式。
regMoney.IgnoreCase = True ' 设置是否区分大小写。
regMoney.Global = True ' 设置全程匹配。
if regMoney.test(strMoney) then
Set oMatches = regMoney.Execute(strMoney)
Set oMatch = oMatches(0)
strMoneyLeft=oMatch.SubMatches(0)
strMoneyRight=oMatch.SubMatches(1)
FormatChineseMoney=ReplaceMoneyLeft(oMatch.SubMatches(0),prmtType)&ReplaceMoneyRight(oMatch.SubMatches(1),prmtType)&"整"
else
FormatChineseMoney="所传金钱金额不合规则!"
end if
else
FormatChineseMoney="所传金钱金额不是数字!"
end if
end Function
Function ReplaceMoneyLeft(prmtMoney,prmtType)
dim intLenMoney,aryK,aryW,aryN,intModI,sNum,sNumA,i
intLenMoney=Len(prmtMoney)
aryK=Array("","拾","佰","仟")
aryW=Array("","元","万","亿")
aryN=Array("零","壹","贰","叄","肆","伍","陆","柒","捌","玖")
for i=1 to intLenMoney
sNum=aryN(Mid(prmtMoney,intLenMoney-i+1,1))&aryK((i-1) Mod 4)&aryW(GetWYIndex(i))&sNum
sNumA="<span class=""spanCNMoneyMoney""> "&aryN(Mid(prmtMoney,intLenMoney-i+1,1))&" </span>"&"<span class=""spanCNMoneyUnit""> "&aryK((i-1) Mod 4)&aryW(GetWYIndex(i))&" </span>"&sNumA
next
if prmtType="A" then
ReplaceMoneyLeft=sNumA
else
ReplaceMoneyLeft=ReplaceCNZeroLeft(sNum)
end if
End Function
Function ReplaceMoneyRight(prmtMoney,prmtType)
dim intLenMoney,aryF,aryN,intModI,sNum,sNumA,i
intLenMoney=Len(prmtMoney)
aryF=Array("","角","分")
aryN=Array("零","壹","贰","叄","肆","伍","陆","柒","捌","玖")
for i=intLenMoney to 1 step -1
sNum=aryN(Mid(prmtMoney,i,1))&aryF(i)&sNum
'response.Write(i&prmtMoney&Mid(prmtMoney,i,1)&aryN(Mid(prmtMoney,i,1)))
sNumA="<span class=""spanCNMoneyMoney""> "&aryN(Mid(prmtMoney,i,1))&" </span>"&"<span class=""spanCNMoneyUnit""> "&aryF(i)&" </span>"&sNumA
next
if prmtType="A" then
ReplaceMoneyRight=sNumA
else
ReplaceMoneyRight=ReplaceCNZeroRight(sNum)
end if
End Function
Function GetWYIndex(prmtIndex)
if prmtIndex=1 then
GetWYIndex=1
elseif ((prmtIndex-5) mod 8)=0 then
GetWYIndex=2
elseif ((prmtIndex-1) mod 8)=0 then
GetWYIndex=3
else
GetWYIndex=0
end if
End Function
Function ReplaceCNZeroLeft(prmtStrCNMoney)
ReplaceCNZeroLeft=prmtStrCNMoney
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零仟","零")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零佰","零")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零拾","零")
dim regExZero
Set regExZero = New RegExp ' 创建正则表达式。
regExZero.IgnoreCase = True ' 设置是否区分大小写。
regExZero.Global = True ' 设置全程匹配。
regExZero.Pattern = "零+"
ReplaceCNZeroLeft=regExZero.replace(ReplaceCNZeroLeft,"零")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零万","万")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零亿","亿")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"零元","元")
ReplaceCNZeroLeft=replace(ReplaceCNZeroLeft,"亿万","亿零")
End Function
Function ReplaceCNZeroRight(prmtStrCNMoney)
ReplaceCNZeroRight=prmtStrCNMoney
ReplaceCNZeroRight=replace(ReplaceCNZeroRight,"零角","零")
dim regExZero
Set regExZero = New RegExp ' 创建正则表达式。
regExZero.IgnoreCase = True ' 设置是否区分大小写。
regExZero.Global = True ' 设置全程匹配。
regExZero.Pattern = "零+分"
ReplaceCNZeroRight=regExZero.replace(ReplaceCNZeroRight,"")
End Function
分享到:
相关推荐
ASP将数字转中文数字金额的函数一 <% function Money(thenumber) 'dim Money,i,String1,String2,length,checkp'定义变量 dim one(),onestr()'定义数组 String1 = "零壹贰叁肆伍陆柒捌玖" String2 = "万仟佰...
代码如下: ”’ <summary> ”’ 将数据转换为Double数字 ”’ </summary> ”’ ”Obj”></param> ”’ <returns></returns> ”’ <remarks></remarks> Public Shared Function todbl(ByVal Obj As Object) As Double...
JavaScript 将数字金额转化为中文大写金额的函数
asp 取得中文句子头一个字的大写拼音字母的函数
字符串大写字面转换成小写字面或者小写字面转换成大写字面,ASP(特指VBS)里自带了两个函数
函数 语法 功能 Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。 Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) ...
InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...
7.如何创建一个ASP文件并浏览其执行结果 第2章 ASP.NET运行模型 12.如何定义变量和判定变量类型 13.什么是变量的作用域 14.如何强制要求显式声明变量 15.如何保留或消除过程调用对变量的影响 16.如何创建和调整...
主要介绍了ASP.NET通过自定义函数实现对字符串的大小写切换功能的方法,给出了两个简单的实现方法,涉及asp.net字符串转换操作的相关技巧,需要的朋友可以参考下
• 将数值转换为商业发票中的中文大写金额 • 生成中文大写金额 • 利用CELL 函数取得动态工作表标签名称 • 利用MOD 函数生成数字校验码 • 利用MOD 函数实现培训反馈表中票数求和 • 利用取舍函数生成重复个数的...
个方法不错,可以生成小写字符跟数字的随机字符串,大家可以加入一些特殊字符和一些大写字母等。
‘****************************** ‘函数:gen_key(digits) ‘参数:digits—-要生成随机数的位数 ‘作者:阿里西西 ‘日期:2007/7/13 ‘描述:生成由数字,大写字母,小写字母指定位数的随机数;返回值:要生成的...
ScanWebshell是Lake2大侠写的,我个人很佩服他,这个工具是一个ASP格式的页面,可以查询ASP,cer,cdx,asa以及嵌套调用的任意格式文件,但是图片ASP木马查不到,基本原理是对特别函数的审查。挺好用的,不过也不是...
72 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ...
//定义一个变量ball2,变量的对象为复制第一个球体为新实例名为"第一个球+num"到num层... var ball2 = attachMovie("ball", "ball"+num, num); //定义ball2的x座标值为随机数... ball2._x = Math.floor(Math....
默认情况下存在一个全局命名空间,所以在命名空间外定义的类直接进到此全局命名空间中,因而你可以不用定界符访问此类。 你同样可以定义嵌套命名空间。 Using #include 指示符被后跟命名空间名的 using 关键字代替...