/
msisdn.go
87 lines (50 loc) · 1.62 KB
/
msisdn.go
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
package phonenumbers
import "regexp"
func FormatKEMsisdn(msisdn string) string {
formatedNumber := ""
if len(msisdn) < 9 {
return formatedNumber
}
var re = regexp.MustCompile(`[\n\r\s\D]+`)
msisdn = re.ReplaceAllString(msisdn, "")
if len(msisdn) < 9 {
return formatedNumber
}
input1 := msisdn[0:1]
input2 := msisdn[0:2]
input4 := msisdn[0:4]
input5 := msisdn[0:5]
length := len(msisdn)
if input1 == "7" && length == 9 {
formatedNumber = SubstrReplace(msisdn, "2547", 0, 1)
} else if input1 == "1" && length == 9 {
formatedNumber = SubstrReplace(msisdn, "2541", 0, 1)
} else if input2 == "07" && length == 10 {
formatedNumber = SubstrReplace(msisdn, "254", 0, 1)
} else if input2 == "01" && length == 10 {
formatedNumber = SubstrReplace(msisdn, "254", 0, 1)
} else if input2 == "7" {
formatedNumber = SubstrReplace(msisdn, "2547", 0, 1)
} else if input2 == "1" {
formatedNumber = SubstrReplace(msisdn, "2547", 0, 1)
} else if input4 == "2547" && length == 12 {
formatedNumber = msisdn;
} else if input4 == "2541" && length == 12 {
formatedNumber = msisdn;
} else if input5 == "+2547" && length == 13 {
formatedNumber = SubstrReplace(msisdn, "", 0, 1)
} else if input5 == "+2541" && length == 13 {
formatedNumber = SubstrReplace(msisdn, "", 0, 1)
}
//logger.Error("received %s formatted to %s ",msisdn,formatedNumber)
return formatedNumber
}
func SubstrReplace(haystack string, needle string, start int, end int) string {
if start == 0 {
parts := haystack[end:]
return needle + parts
}
part1 := haystack[0:start]
part2 := haystack[end:]
return part1 + needle + part2
}