'格式化中文金額的方法
'@ 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...