I not sure what's happening. The same function with same input return different results when using regexp library of golang.
package main
import (
"fmt"
"regexp"
)
type PaymentNetworkData struct {
Regex string
Name string
}
var PAYMENT_NETWORKS = map[string]PaymentNetworkData{
"Mastercard": {
Regex: "^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[0-1]\\d|2720)[0-9]{12}$",
Name: "Mastercard",
},
"VisaMaster": {
Regex: "^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$",
Name: "VisaMaster",
},
}
func resolvePaymentNetwork(cardIn string) string {
payNet := "Unknown"
for _, v := range PAYMENT_NETWORKS {
regex := regexp.MustCompile(v.Regex)
if regex.MatchString(cardIn) {
payNet = v.Name
} …Run Code Online (Sandbox Code Playgroud)