原本是群里某位大哥发的JavaScript版,因为项目里需要,改写成了C#版的,希望能对需要的人帮点忙哈~~~
1
/// <summary>
2
/// 将中文数字替换为阿拉伯数字
3
/// </summary>
4
/// <param name="word"></param>
5
/// <returns></returns>
6
public static string WordToNumber(string word)
7
{
8
string e = "([零一二三四五六七八九十百千万亿])+";
9
MatchCollection mc = Regex.Matches(word, e);
10![](/Images/OutliningIndicators/InBlock.gif)
11
foreach(Match m in mc)
12
{
13
word = word.Replace(m.Value, Word2Number(m.Value));
14
}
15
return word;
16
}
17![](/Images/OutliningIndicators/None.gif)
18
private static string Word2Number(string w)
19
{
20
if(w == "")
21
return w;
22![](/Images/OutliningIndicators/InBlock.gif)
23
string e = "零一二三四五六七八九";
24
string[] ew = new string[]{"十", "百", "千"};
25
string ewJoin = "十百千";
26
string[] ej = new string[]{"万", "亿"};
27![](/Images/OutliningIndicators/InBlock.gif)
28
string rss = "^([" + e + ewJoin + "]+" + ej[1] + ")?([" + e
29
+ ewJoin + "]+" +ej[0] + ")?([" + e + ewJoin + "]+)?$";
30
string[] mcollect = Regex.Split(w, rss);
31
if(mcollect.Length < 4)
32
return w;
33
return (
34
Convert.ToInt64(foh(mcollect[1])) * 100000000 +
35
Convert.ToInt64(foh(mcollect[2])) * 10000 +
36
Convert.ToInt64(foh(mcollect[3]))
37
).ToString();
38
}
39![](/Images/OutliningIndicators/None.gif)
40
private static int foh(string str)
41
{
42
string e = "零一二三四五六七八九";
43
string[] ew = new string[]{"十", "百", "千"};
44
string[] ej = new string[]{"万", "亿"};
45![](/Images/OutliningIndicators/InBlock.gif)
46
int a = 0;
47
if(str.IndexOf(ew[0]) == 0)
48
a = 10;
49
str = Regex.Replace(str, e[0].ToString(), "");
50![](/Images/OutliningIndicators/InBlock.gif)
51
if(Regex.IsMatch(str, "([" + e + "])$"))
52
{
53
a += e.IndexOf(Regex.Match(str, "([" + e + "])$").Value[0]);
54
}
55![](/Images/OutliningIndicators/InBlock.gif)
56
if(Regex.IsMatch(str, "([" + e + "])" + ew[0]))
57
{
58
a += e.IndexOf(Regex.Match(str, "([" + e + "])" + ew[0]).Value[0]) * 10;
59
}
60![](/Images/OutliningIndicators/InBlock.gif)
61
if(Regex.IsMatch(str, "([" + e + "])" + ew[1]))
62
{
63
a += e.IndexOf(Regex.Match(str, "([" + e + "])" + ew[1]).Value[0]) * 100;
64
}
65![](/Images/OutliningIndicators/InBlock.gif)
66
if(Regex.IsMatch(str, "([" + e + "])" + ew[2]))
67
{
68
a += e.IndexOf(Regex.Match(str, "([" + e + "])" + ew[2]).Value[0]) * 1000;
69
}
70
return a;
71
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
想做些令人惊奇的东西出来