新寫了乙個轉中文大寫金額的ASP函式

2021-04-07 08:33:47 字數 3824 閱讀 8859

'格式化中文金額的方法

'@ 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))?$"   ' 設定模式。

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=""&aryn(mid(prmtmoney,intlenmoney-i+1,1))&" "&""&aryk((i-1) mod 4)&aryw(getwyindex(i))&" "&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=""&aryn(mid(prmtmoney,i,1))&" "&""&aryf(i)&" "&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將數字轉中文數字 大寫金額 的函式

下面跟大家分享2種不同函式的實現方式。asp將數字轉中文數字金額的函式一 程式設計客棧佰拾萬仟佰拾元角分釐毫 checkp instr thenumber,判斷是否含有小數字 if checkp 0 then thenumber replace thenumber,去除小數字 end if leng...

C 取得乙個漢字的拼音首字母 金額大寫轉換

region 取得乙個漢字的拼音首字母 取得乙個漢字的拼音首字母 乙個漢字 首字母 public static string getspell string cnchar for int i 0 i 26 i toupper return else return cnchar endregion r...

寫了乙個新浪部落格的爬蟲

語言 c 用到的第三方庫 軟體介面 由於原理非常簡單,花了乙個小時寫了一下,直接上 using system using system.io using system.net using system.text using system.text.regularexpressions using s...