资料
表格
制度
合同
管理
职场
经营
创业
范文
总结
计划
作文
文章
美文
词句
教程
模板
图片
字体
图标
办公
人事
财务
生产
管理资源吧首页
>>>
教程
>>>
编程
>>>
JavaScript教程
>>>
人民币数字转换成大写形式
运用了正则表达式的功能,除了可以正确的转换成人民币的大写形式以外,还可以判断输入的形式是否正确有效。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> <head> <title>将人民币数字转换成大写形式</title> <img src="/_New/_cj/myeditor/sysimage/space.gif" class="ewebeditor__script" _ewebeditor_fake_tag="script" _ewebeditor_fake_value="%3Cscript%20language%3D%22jscript%22%3E%20%20%0D%0Afunction%20convertCurrency(currencyDigits)%20%7B%20%20%0D%0A%2F%2F%20Constants%3A%20%20%0D%0A%20var%20MAXIMUM_NUMBER%20%3D%2099999999999.99%3B%20%20%0D%0A%20%2F%2F%20Predefine%20the%20radix%20characters%20and%20currency%20symbols%20for%20output%3A%20%20%0D%0A%20var%20CN_ZERO%20%3D%20%22%E9%9B%B6%22%3B%20%20%0D%0A%20var%20CN_ONE%20%3D%20%22%E5%A3%B9%22%3B%20%20%0D%0A%20var%20CN_TWO%20%3D%20%22%E8%B4%B0%22%3B%20%20%0D%0A%20var%20CN_THREE%20%3D%20%22%E5%8F%81%22%3B%20%20%0D%0A%20var%20CN_FOUR%20%3D%20%22%E8%82%86%22%3B%20%20%0D%0A%20var%20CN_FIVE%20%3D%20%22%E4%BC%8D%22%3B%20%20%0D%0A%20var%20CN_SIX%20%3D%20%22%E9%99%86%22%3B%20%20%0D%0A%20var%20CN_SEVEN%20%3D%20%22%E6%9F%92%22%3B%20%20%0D%0A%20var%20CN_EIGHT%20%3D%20%22%E6%8D%8C%22%3B%20%20%0D%0A%20var%20CN_NINE%20%3D%20%22%E7%8E%96%22%3B%20%20%0D%0A%20var%20CN_TEN%20%3D%20%22%E6%8B%BE%22%3B%20%20%0D%0A%20var%20CN_HUNDRED%20%3D%20%22%E4%BD%B0%22%3B%20%20%0D%0A%20var%20CN_THOUSAND%20%3D%20%22%E4%BB%9F%22%3B%20%20%0D%0A%20var%20CN_TEN_THOUSAND%20%3D%20%22%E4%B8%87%22%3B%20%20%0D%0A%20var%20CN_HUNDRED_MILLION%20%3D%20%22%E4%BA%BF%22%3B%20%20%0D%0A%20var%20CN_SYMBOL%20%3D%20%22%E4%BA%BA%E6%B0%91%E5%B8%81%22%3B%20%20%0D%0A%20var%20CN_DOLLAR%20%3D%20%22%E5%85%83%22%3B%20%20%0D%0A%20var%20CN_TEN_CENT%20%3D%20%22%E8%A7%92%22%3B%20%20%0D%0A%20var%20CN_CENT%20%3D%20%22%E5%88%86%22%3B%20%20%0D%0A%20var%20CN_INTEGER%20%3D%20%22%E6%95%B4%22%3B%20%20%0D%0A%20%20%20%0D%0A%2F%2F%20Variables%3A%20%20%0D%0A%20var%20integral%3B%20%2F%2F%20Represent%20integral%20part%20of%20digit%20number.%20%20%0D%0A%20var%20decimal%3B%20%2F%2F%20Represent%20decimal%20part%20of%20digit%20number.%20%20%0D%0A%20var%20outputCharacters%3B%20%2F%2F%20The%20output%20result.%20%20%0D%0A%20var%20parts%3B%20%20%0D%0A%20var%20digits%2C%20radices%2C%20bigRadices%2C%20decimals%3B%20%20%0D%0A%20var%20zeroCount%3B%20%20%0D%0A%20var%20i%2C%20p%2C%20d%3B%20%20%0D%0A%20var%20quotient%2C%20modulus%3B%20%20%0D%0A%20%20%20%0D%0A%2F%2F%20Validate%20input%20string%3A%20%20%0D%0A%20currencyDigits%20%3D%20currencyDigits.toString()%3B%20%20%0D%0A%20if%20(currencyDigits%20%3D%3D%20%22%22)%20%7B%20%20%0D%0A%20alert(%22Empty%20input!%22)%3B%20%20%0D%0A%20return%20%22%22%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20if%20(currencyDigits.match(%2F%5B%5E%2C.%5Cd%5D%2F)%20!%3D%20null)%20%7B%20%20%0D%0A%20alert(%22Invalid%20characters%20in%20the%20input%20string!%22)%3B%20%20%0D%0A%20return%20%22%22%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20if%20((currencyDigits).match(%2F%5E((%5Cd%7B1%2C3%7D(%2C%5Cd%7B3%7D)*(.((%5Cd%7B3%7D%2C)*%5Cd%7B1%2C3%7D))%3F)%7C(%5Cd%2B(.%5Cd%2B)%3F))%24%2F)%20%3D%3D%20null)%20%7B%20%20%0D%0A%20alert(%22Illegal%20format%20of%20digit%20number!%22)%3B%20%20%0D%0A%20return%20%22%22%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%20%20%0D%0A%2F%2F%20Normalize%20the%20format%20of%20input%20digits%3A%20%20%0D%0A%20currencyDigits%20%3D%20currencyDigits.replace(%2F%2C%2Fg%2C%20%22%22)%3B%20%2F%2F%20Remove%20comma%20delimiters.%20%20%0D%0A%20currencyDigits%20%3D%20currencyDigits.replace(%2F%5E0%2B%2F%2C%20%22%22)%3B%20%2F%2F%20Trim%20zeros%20at%20the%20beginning.%20%20%0D%0A%20%2F%2F%20Assert%20the%20number%20is%20not%20greater%20than%20the%20maximum%20number.%20%20%0D%0A%20if%20(Number(currencyDigits)%20%3E%20MAXIMUM_NUMBER)%20%7B%20%20%0D%0A%20alert(%22Too%20large%20a%20number%20to%20convert!%22)%3B%20%20%0D%0A%20return%20%22%22%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%20%20%0D%0A%2F%2F%20Process%20the%20coversion%20from%20currency%20digits%20to%20characters%3A%20%20%0D%0A%20%2F%2F%20Separate%20integral%20and%20decimal%20parts%20before%20processing%20coversion%3A%20%20%0D%0A%20parts%20%3D%20currencyDigits.split(%22.%22)%3B%20%20%0D%0A%20if%20(parts.length%20%3E%201)%20%7B%20%20%0D%0A%20integral%20%3D%20parts%5B0%5D%3B%20%20%0D%0A%20decimal%20%3D%20parts%5B1%5D%3B%20%20%0D%0A%20%2F%2F%20Cut%20down%20redundant%20decimal%20digits%20that%20are%20after%20the%20second.%20%20%0D%0A%20decimal%20%3D%20decimal.substr(0%2C%202)%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20else%20%7B%20%20%0D%0A%20integral%20%3D%20parts%5B0%5D%3B%20%20%0D%0A%20decimal%20%3D%20%22%22%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%2F%2F%20Prepare%20the%20characters%20corresponding%20to%20the%20digits%3A%20%20%0D%0A%20digits%20%3D%20new%20Array(CN_ZERO%2C%20CN_ONE%2C%20CN_TWO%2C%20CN_THREE%2C%20CN_FOUR%2C%20CN_FIVE%2C%20CN_SIX%2C%20CN_SEVEN%2C%20CN_EIGHT%2C%20CN_NINE)%3B%20%20%0D%0A%20radices%20%3D%20new%20Array(%22%22%2C%20CN_TEN%2C%20CN_HUNDRED%2C%20CN_THOUSAND)%3B%20%20%0D%0A%20bigRadices%20%3D%20new%20Array(%22%22%2C%20CN_TEN_THOUSAND%2C%20CN_HUNDRED_MILLION)%3B%20%20%0D%0A%20decimals%20%3D%20new%20Array(CN_TEN_CENT%2C%20CN_CENT)%3B%20%20%0D%0A%20%2F%2F%20Start%20processing%3A%20%20%0D%0A%20outputCharacters%20%3D%20%22%22%3B%20%20%0D%0A%20%2F%2F%20Process%20integral%20part%20if%20it%20is%20larger%20than%200%3A%20%20%0D%0A%20if%20(Number(integral)%20%3E%200)%20%7B%20%20%0D%0A%20zeroCount%20%3D%200%3B%20%20%0D%0A%20for%20(i%20%3D%200%3B%20i%20%3C%20integral.length%3B%20i%2B%2B)%20%7B%20%20%0D%0A%20p%20%3D%20integral.length%20-%20i%20-%201%3B%20%20%0D%0A%20d%20%3D%20integral.substr(i%2C%201)%3B%20%20%0D%0A%20quotient%20%3D%20p%20%2F%204%3B%20%20%0D%0A%20modulus%20%3D%20p%20%25%204%3B%20%20%0D%0A%20if%20(d%20%3D%3D%20%220%22)%20%7B%20%20%0D%0A%20zeroCount%2B%2B%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20else%20%7B%20%20%0D%0A%20if%20(zeroCount%20%3E%200)%20%20%0D%0A%20%7B%20%20%0D%0A%20outputCharacters%20%2B%3D%20digits%5B0%5D%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20zeroCount%20%3D%200%3B%20%20%0D%0A%20outputCharacters%20%2B%3D%20digits%5BNumber(d)%5D%20%2B%20radices%5Bmodulus%5D%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20if%20(modulus%20%3D%3D%200%20%26%26%20zeroCount%20%3C%204)%20%7B%20%20%0D%0A%20outputCharacters%20%2B%3D%20bigRadices%5Bquotient%5D%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%7D%20%20%0D%0A%20outputCharacters%20%2B%3D%20CN_DOLLAR%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%2F%2F%20Process%20decimal%20part%20if%20there%20is%3A%20%20%0D%0A%20if%20(decimal%20!%3D%20%22%22)%20%7B%20%20%0D%0A%20for%20(i%20%3D%200%3B%20i%20%3C%20decimal.length%3B%20i%2B%2B)%20%7B%20%20%0D%0A%20d%20%3D%20decimal.substr(i%2C%201)%3B%20%20%0D%0A%20if%20(d%20!%3D%20%220%22)%20%7B%20%20%0D%0A%20outputCharacters%20%2B%3D%20digits%5BNumber(d)%5D%20%2B%20decimals%5Bi%5D%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20%7D%20%20%0D%0A%20%7D%20%20%0D%0A%20%2F%2F%20Confirm%20and%20return%20the%20final%20output%20string%3A%20%20%0D%0A%20if%20(outputCharacters%20%3D%3D%20%22%22)%20%7B%20%20%0D%0A%20outputCharacters%20%3D%20CN_ZERO%20%2B%20CN_DOLLAR%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20if%20(decimal%20%3D%3D%20%22%22)%20%7B%20%20%0D%0A%20outputCharacters%20%2B%3D%20CN_INTEGER%3B%20%20%0D%0A%20%7D%20%20%0D%0A%20outputCharacters%20%3D%20CN_SYMBOL%20%2B%20outputCharacters%3B%20%20%0D%0A%20return%20outputCharacters%3B%20%20%0D%0A%7D%20%20%0D%0A%20%3C%2Fscript%3E"> </head> <body> <input id="Digits" type="text" name="Digits" size="20" /> <input id="Convert" type="button" value="Convert" name="Convert" onclick="Result.value = convertCurrency(Digits.value);" /> <input id="Result" type="text" name="Result" size="60" /> </body> </html>
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行
]
教程首页
更多教程