阿拉伯数字转中文大小写, 使用InternationalNumericFormatter和正规表示式Regular Expressions
来源:互联网 发布:无法连接这个网络 热点 编辑:程序博客网 时间:2024/05/17 01:42
之前有写过有关钱的系统,所以不免俗会跟银行一样有阿拉伯数字转中文大小写的需求,使用这篇文章分享一下如何使用正规表示式Regular Expressions来检查输入的金额,并使用EastAsiaNumericFormatter转换成中文大小写。
之前有写过有关钱的系统,所以不免俗会跟银行一样有阿拉伯数字转中文大小写的需求,使用这篇文章分享一下如何使用正规表示式Regular Expressions来检查输入的金额,并使用EastAsiaNumericFormatter转换成中文大小写。
首先正规表示式在微软的API中就可以直接拿来使用,不需要再额外下载第三方套件或API
using System.Text.RegularExpressions;
这个案例中我要判断的是输入的金额的格式,由于输入的金额是可以接受负数金额,且还有包含人民币的部分,CN还是有在使用小数位的金额的(例如0.5元),另外有的金额输入会在千位的前方加上逗号(例如45,150),所以在正规表示式的表示就必须包含这几个规则。
PS.我在前面就把逗号先用Replace处理掉了会单纯一点,但其实可以纳入正规表示式的规则里面。
sInputValue = sInputValue.Replace(",", ""); //Edit by Second 2016.06.27 有的金額欄位會有 4,110 這種方式顯示 string sResult = string.Empty; string sRegexNum = @"^[-+]?\d+(\.\d+)?$"; //判斷是否為數字的正規表示式 string sRegexInt = @"^-?\d+$"; //判斷是否為整數的正規表示式
要使用EastAsiaNumericFormatter转换成金额必须先下载安装微软.NET推出相关的套件 http://www.microsoft.com/zh-tw/download/details.aspx?id=18970
安装完毕后把InternationalNumericFormatter.dll加入到专案里面。
呼叫时,取决于你要取得大写或是小写亦或者是货币名称传入不同的参数(L、Ln、Lc、Lt),但我使用的这版本的API有一个Bug,转换后的中文大小写如果百位或十位前面是一的话会不显示,所以要自行另外补上。
并在最后如果该数字是整数还要加上多少元整。
//標準格式(L):又稱大寫 //普通格式(Ln):又稱小寫 //貨幣格式(Lc):用來表示貨幣 //字譯格式(Lt):以數字符號字元表現數值資料,只支援日文 //解決EastAsiaNumericFormatter 轉換後的數字 如果是金額會有顯示的異常 //轉換後4110 = 四千一百十 ==> 十之前需要多補一個一 string sInput = EastAsiaNumericFormatter.FormatWithCulture( moneyChar ? "L" : "Ln", dInput, null, new CultureInfo("zh-TW")); string pattern = moneyChar ? "[^壹貳參肆伍陸柒捌玖]拾" : "[^一二三四五六七八九]十"; string one = moneyChar ? "壹" : "一"; string res = Regex.Replace(sInput, pattern, m => { return m.Value.Substring(0, 1) + one + m.Value.Substring(1); }); if(moneyChar){ if (bInt == true ) //只有整數的部分 { sResult = res + "元整"; } else { //含有小數金額的部分 須轉換成角和分 sResult = CovertDecPart(res); } }
- 阿拉伯数字转中文大小写, 使用InternationalNumericFormatter和正规表示式Regular Expressions
- 正规表示法Regular Expression
- Regular Expressions
- Regular Expressions
- Regular Expressions
- Regular Expressions
- Regular Expressions
- regular-expressions
- 把中文表示的数字转成阿拉伯数字
- 阿拉伯数字转中文大写
- 阿拉伯数字转中文
- 阿拉伯数字转中文
- 阿拉伯数字转中文
- 阿拉伯数字转中文
- 阿拉伯数字转中文数字
- 压缩指令和正规表示法
- Linux grep命令和正规表示法
- 正规表示法和Linux三剑客
- Python中的多线程
- MongoDB高级查询用法大全
- ubuntu从零开始安装mxnet--安装cudnn5.0
- JavaScript获取浏览器语言的方法
- Java IO流-InputStream和OutputStream
- 阿拉伯数字转中文大小写, 使用InternationalNumericFormatter和正规表示式Regular Expressions
- Mysql-5.7.19配置(报错1055)以及常见问题(无法输入中文1366)
- 常用类
- Tkinter
- 数组去重4种方法
- springmvc源码笔记
- disconf-web的搭建
- JAXB控制CDATA节点转义
- HTML5视频直播技术介绍