-
Notifications
You must be signed in to change notification settings - Fork 5
/
read_tunamal.js
109 lines (97 loc) · 2.56 KB
/
read_tunamal.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// ==========================================================================================
// Title: READ TUNAMAL
// Description: Converts Mongolion numeric words to number 😉
// Author: Batzorig Gonchigsumlaa
// Email: batz.gg@gmail.com
// Date: 30 Mar 2023
//===========================================================================================
const onesTens = {
'тэг' : 0,
'нэг' : 1,
'хоёр' : 2,
'гурав' : 3,
'дөрөв' : 4,
'тав' : 5,
'зургаа' : 6,
'долоо' : 7,
'найм' : 8,
'ес' : 9,
'нэгэн' : 1,
'хоёр' : 2,
'гурван' : 3,
'дөрвөн' : 4,
'таван' : 5,
'зургаан' : 6,
'долоон' : 7,
'найман' : 8,
'есөн' : 9,
'арван' : 10,
'хорин' : 20,
'гучин' : 30,
'дөчин' : 40,
'тавин' : 50,
'жаран' : 60,
'далан' : 70,
'наян' : 80,
'ерэн' : 90,
'арав' : 10,
'хорь' : 20,
'гуч' : 30,
'дөч' : 40,
'тавь' : 50,
'жар' : 60,
'дал' : 70,
'ная' : 80,
'ер' : 90,
};
const scalePlace = {
'зуу': 10**2,
'мянга': 10**3,
'сая': 10**6,
'тэрбум': 10**9,
'их наяд': 10**12,
'тунамал': 10**15,
};
let a, n, g;
const mn2nm = (s) => {
a = s.toString().split(/[\s-]+/);
if ((a[a.indexOf(a.find(e => e === "их"))] + ' ' + a[a.indexOf(a.find(e => e === "наяд"))]) == 'их наяд') {
a[a.indexOf(a.find(e => e === "их"))] = 'их наяд';
a = a.filter(x => x != 'наяд');
}
if (
a[0] == 'зуун' ||
a[0] == 'зуу' ||
a[0] == 'мянга' ||
a[0] == 'сая' ||
a[0] == 'тэрбум' ||
a[0] == 'их наяд' ||
a[0] == 'тунамал'
) {
a = 'нэг' + ' ' + s;
mn2nm(a);
}
n = 0;
g = 0;
a.forEach(feach);
return n + g;
}
const feach = (w) =>{
let x = onesTens[w];
if (x != null) {
g = g + x;
}
else if (w == "зуун") {
g = g * 100;
}
else {
x = scalePlace[w];
if (x != null) {
n = n + g * x
g = 0;
}
else {
console.log("Таньсангүй: " + w);
}
}
};