'格式化中文金额的方法
'@ 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
分享到:
相关推荐
本例中的代码展示了一个具体的实现过程,用于将货币类型的数值(小写金额)转换为汉字大写形式。 #### 实现原理与步骤 1. **初始化与预处理**:首先,定义一个函数`jezh(xxje:currency):String;`,接收一个货币...
本文将详细讲解如何在ASP中将数字转换为中文数字(大写金额)的两种函数实现方法。 首先,我们来看第一种方法。这个函数名为`Money`,它接受一个数字作为参数`thenumber`。函数内部定义了多个变量,包括`Money`、`i...
代码如下: ”’ <summary> ”’ 将数据转换为Double数字 ”’ </summary> ”’ ”Obj”></param> ”’ <returns></returns> ”’ <remarks></remarks> Public Shared Function todbl(ByVal Obj As Object) As Double...
与`Asc`相反,`Chr`函数将一个ASCII码值转换为相应的字符。例如,ASCII值65转换为字符"A",97转换为"a"。这对于构建字符串或解析基于ASCII码的数据时很有帮助。 ```vb Dim MyChar MyChar = Chr(65) ' 结果为 "A" ...
`ASP函数.CHM`是一个帮助文件,通常包含了更详细的ASP函数使用方法、示例和API参考。CHM文件是微软的HTML帮助文件格式,可以方便地查阅和搜索相关函数的详细信息。通过打开这个文件,开发者可以深入学习每个函数的...
在这个例子中,我们定义了一个名为`RMBToBigChar`的函数,它接受一个数字字符串作为输入,然后将其转换为相应的中文大写形式。首先,我们创建了两个字符串变量,`BigChars`存储中文数字字符,`NumArray`则存储对应的...
标题"asp.net数字转换中文"所指的就是如何在ASP.NET环境下实现数字到中文汉字的转换功能。描述中的“数字与中文间的转换,如123=一百二十三”进一步明确了这个需求,即输入一个数字,输出对应的中文全拼或中文大写。...
本篇文章介绍了一个使用JavaScript编写的函数,用于将数字金额(例如:123456.78)转换为对应的中文大写形式(例如:“壹拾贰万叁仟肆佰伍拾陆元柒角捌分”)。 #### 实现细节 该函数名为`convertCurrency`,主要...
- 这些函数用于转换字符串的大小写:`UCase`转为全大写,`LCase`转为全小写,`Proper`首字母大写其余小写。 13. **Split函数**: - `Split`函数将字符串分割成数组,如`Dim arr = Split("a,b,c", ",")`将返回包含...
总之,`getpychar`函数是ASP环境下处理中文字符的一种实用工具,能够方便地获取中文句子第一个字的大写拼音首字母。然而,为了适应更广泛的应用场景,开发者可能需要对其进行一些改进,比如增加对多音字的支持,添加...
7. **StrComp()** - 这个函数比较两个字符串,并返回一个值来表示它们的关系:0表示相等,-1表示第一个字符串小于第二个,1表示第一个字符串大于第二个。比较可以是二进制的(区分大小写)或文本的(不区分大小写)...
在ASP中,内置函数是预定义的、可以直接使用的函数,它们简化了编程工作,提供了处理常见任务的能力。以下是一些重要的ASP内置函数及其功能的详细说明: 1. **Response对象的Write方法**:这是ASP中最基本的输出...
在编程语言ASP (Active Server Pages) 中,处理字符串大小写转换是一个基础且常见的操作。ASP主要是使用VBScript(VBS)作为脚本语言,而VBS提供了内置的函数用于在字符串的大小写之间进行转换。这些函数分别是LCase...
总的来说,"fif版asp函数手册及asp帮助手册中文版"是一个宝贵的资源,无论你是新手还是资深开发者,都能从中获益匪浅。学习并熟练掌握ASP,能让你更好地构建动态、交互性强的Web应用,满足各种业务需求。
通过阅读"asp函数教程.txt",你可以深入了解每个函数的使用方式和应用场景,从而提高开发效率。记住,实践是最好的老师,多动手编写代码,结合这些函数来解决实际问题,你的ASP技能将会迅速提升。
1. **Array()**:这个函数用于创建一个数组,它接受一个列表作为参数,并返回一个包含这些元素的数组。例如,在提供的代码中,`Array(WeekdayName(i))`为一周的每一天创建了一个数组。 2. **CInt()**:CInt函数将一...
这个"ASP函数大全.rar"文件显然是一份详细的ASP函数参考文档,包含了ASP中常用的函数及其用法,以TXT文本格式呈现。在网站开发过程中,ASP函数是构建功能丰富的交互式网页的关键工具。 首先,我们要了解ASP的基础。...