Created
November 26, 2016 22:45
-
-
Save ferdiunal/7ecce04cce4a9b34d30e8ed0071dd2b4 to your computer and use it in GitHub Desktop.
Tester
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"net" | |
"regexp" | |
"strconv" | |
"strings" | |
) | |
var IBANS = map[string]interface{}{ | |
"AD": "AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}", | |
"AE": "AE[0-9]{2}[0-9]{3}[0-9]{16}", | |
"AL": "AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}", | |
"AO": "AO[0-9]{2}[0-9]{21}", | |
"AT": "AT[0-9]{2}[0-9]{5}[0-9]{11}", | |
"AZ": "AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}", | |
"BA": "BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}", | |
"BE": "BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}", | |
"BF": "BF[0-9]{2}[0-9]{23}", | |
"BG": "BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}", | |
"BH": "BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}", | |
"BI": "BI[0-9]{2}[0-9]{12}", | |
"BJ": "BJ[0-9]{2}[A-Z]{1}[0-9]{23}", | |
"BR": "BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]", | |
"CH": "CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}", | |
"CI": "CI[0-9]{2}[A-Z]{1}[0-9]{23}", | |
"CM": "CM[0-9]{2}[0-9]{23}", | |
"CR": "CR[0-9]{2}[0-9]{3}[0-9]{14}", | |
"CV": "CV[0-9]{2}[0-9]{21}", | |
"CY": "CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}", | |
"CZ": "CZ[0-9]{2}[0-9]{20}", | |
"DE": "DE[0-9]{2}[0-9]{8}[0-9]{10}", | |
"DK": "DK[0-9]{2}[0-9]{14}", | |
"DO": "DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}", | |
"DZ": "DZ[0-9]{2}[0-9]{20}", | |
"EE": "EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}", | |
"ES": "ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}", | |
"FI": "FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}", | |
"FO": "FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", | |
"FR": "FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", | |
"GB": "GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", | |
"GE": "GE[0-9]{2}[A-Z]{2}[0-9]{16}", | |
"GI": "GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}", | |
"GL": "GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", | |
"GR": "GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}", | |
"GT": "GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}", | |
"HR": "HR[0-9]{2}[0-9]{7}[0-9]{10}", | |
"HU": "HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}", | |
"IE": "IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", | |
"IL": "IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}", | |
"IR": "IR[0-9]{2}[0-9]{22}", | |
"IS": "IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}", | |
"IT": "IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", | |
"JO": "JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}", | |
"KW": "KW[0-9]{2}[A-Z]{4}[0-9]{22}", | |
"KZ": "KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}", | |
"LB": "LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}", | |
"LI": "LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}", | |
"LT": "LT[0-9]{2}[0-9]{5}[0-9]{11}", | |
"LU": "LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}", | |
"LV": "LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}", | |
"MC": "MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", | |
"MD": "MD[0-9]{2}[A-Z0-9]{20}", | |
"ME": "ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", | |
"MG": "MG[0-9]{2}[0-9]{23}", | |
"MK": "MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}", | |
"ML": "ML[0-9]{2}[A-Z]{1}[0-9]{23}", | |
"MR": "MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}", | |
"MT": "MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}", | |
"MU": "MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}", | |
"MZ": "MZ[0-9]{2}[0-9]{21}", | |
"NL": "NL[0-9]{2}[A-Z]{4}[0-9]{10}", | |
"NO": "NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}", | |
"PK": "PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", | |
"PL": "PL[0-9]{2}[0-9]{8}[0-9]{16}", | |
"PS": "PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", | |
"PT": "PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}", | |
"QA": "QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", | |
"RO": "RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", | |
"RS": "RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", | |
"SA": "SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}", | |
"SE": "SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}", | |
"SI": "SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}", | |
"SK": "SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}", | |
"SM": "SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", | |
"SN": "SN[0-9]{2}[A-Z]{1}[0-9]{23}", | |
"TL": "TL38[0-9]{3}[0-9]{14}[0-9]{2}", | |
"TN": "TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", | |
"TR": "TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}", | |
"VG": "VG[0-9]{2}[A-Z]{4}[0-9]{16}", | |
"XK": "XK[0-9]{2}[0-9]{4}[0-9]{10}[0-9]{2}", | |
} | |
var ( | |
latitude = regexp.MustCompile("^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)$") | |
longitude = regexp.MustCompile("^[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$") | |
ssn = regexp.MustCompile(`^\d{3}[- ]?\d{2}[- ]?\d{4}$`) | |
tcNo = regexp.MustCompile("^[1-9]{1}[0-9]{9}[0,2,4,6,8]{1}$") | |
mongo = regexp.MustCompile("^[0-9a-fA-F]{24}$") | |
alpha = regexp.MustCompile("^[a-zA-Z]+$") | |
alphaNum = regexp.MustCompile("^[a-zA-Z0-9]+$") | |
numberic = regexp.MustCompile("^[-+]?[0-9]+$") | |
upper = regexp.MustCompile("^[A-Z]+$") | |
lower = regexp.MustCompile("^[a-z]+$") | |
imei = regexp.MustCompile(`^\d{15}(,\d{15})*$`) | |
base64 = regexp.MustCompile("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$") | |
visa_card = regexp.MustCompile("^4[0-9]{6,}$") | |
american_express = regexp.MustCompile("^3[47][0-9]{5,}$") | |
master_card = regexp.MustCompile("^5[1-5][0-9]{5,}|222[1-9][0-9]{3,}|22[3-9][0-9]{4,}|2[3-6][0-9]{5,}|27[01][0-9]{4,}|2720[0-9]{3,}$") | |
) | |
func main() { | |
} | |
// .IP("127.0.0.1") // TRUE OR FALSE | |
func IP(str string) bool { | |
ip := net.ParseIP(str) | |
return ip != nil && ip.To4() != nil || ip != nil && ip.To16() != nil | |
} | |
// .PORT("8080") // TRUE OR FALSE | |
func PORT(str string) bool { | |
if i, e := strconv.Atoi(str); e == nil && i > 0 && i < 65536 { | |
return true | |
} | |
return false | |
} | |
// string ip address check IP version 4 | |
func IPv4(str string) bool { | |
ip := net.ParseIP(str) | |
return ip != nil && ip.To4() != nil | |
} | |
// string ip address check IP version 6 | |
func IPv6(str string) bool { | |
ip := net.ParseIP(str) | |
return ip != nil && ip.To16() != nil | |
} | |
// string mac address check | |
func MAC(str string) bool { | |
_, err := net.ParseMAC(str) | |
return err == nil | |
} | |
// Checked Coordinate Latitude | |
func Latitude(str string) bool { | |
return latitude.MatchString(str) | |
} | |
// Checked Coordinate Longitude | |
func Longitude(str string) bool { | |
return longitude.MatchString(str) | |
} | |
// Checked Turkish Republic ID Number | |
func TCNO(str string) bool { | |
return tcNo.MatchString(str) | |
} | |
// Checked Social Security Number | |
func SSN(str string) bool { | |
return ssn.MatchString(str) | |
} | |
func toFloat64(str string) (float64, error) { | |
res, err := strconv.ParseFloat(str, 64) | |
if err != nil { | |
res = 0.0 | |
} | |
return res, err | |
} | |
func toInt(str string) (int64, error) { | |
res, err := strconv.ParseInt(str, 0, 64) | |
if err != nil { | |
res = 0 | |
} | |
return res, err | |
} | |
func isAlpha(is string) bool { | |
return alpha.MatchString(is) | |
} | |
func isAlphaNum(is string) bool { | |
return alphaNum.MatchString(is) | |
} | |
func isAlphaUpper(is string) bool { | |
return upper.MatchString(is) | |
} | |
func isAlphaLower(is string) bool { | |
return lower.MatchString(is) | |
} | |
func isNumeric(is string) bool { | |
return numberic.MatchString(is) | |
} | |
func isBetween(str string, first int, second int) bool { | |
between := len(str) | |
return between >= first || between <= second | |
} | |
func MongoID(str string) bool { | |
return mongo.MatchString(str) | |
} | |
func isIban(country string, iban string) bool { | |
match := regexp.MustCompile(strings.ToUpper(country)) | |
return match.MatchString(iban) | |
} | |
func Imei(str string) bool { | |
return imei.MatchString(str) | |
} | |
func Base64(str string) bool { | |
return base64.MatchString(str) | |
} | |
func isAmericanExpress(str string) bool { | |
return american_express.MatchString(str) | |
} | |
func isMasterCard(str string) bool { | |
return master_card.MatchString(str) | |
} | |
func isVisaCard(str string) bool { | |
return visa_card.MatchString(str) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment