Ich versuche herauszufinden, wie ich die Art der Kreditkarte allein anhand ihrer Nummer erkennen kann. Kennt jemand eine eindeutige, zuverlässige Methode, um dies herauszufinden?
Antworten
Zu viele Anzeigen?
OhhhThatVarun
Punkte
3381
Versuchen Sie dies für Kotlin. Fügen Sie Regex und fügen Sie die wenn-Anweisung.
private fun getCardType(number: String): String {
val visa = Regex("^4[0-9]{12}(?:[0-9]{3})?$")
val mastercard = Regex("^5[1-5][0-9]{14}$")
val amx = Regex("^3[47][0-9]{13}$")
return when {
visa.matches(number) -> "Visa"
mastercard.matches(number) -> "Mastercard"
amx.matches(number) -> "American Express"
else -> "Unknown"
}
}
rajan
Punkte
9
Die Regeln für reguläre Ausdrücke, die auf die die jeweiligen Kartenverkäufer :
(4\d{12}(?:\d{3})?)
für VISA.(5[1-5]\d{14})
für MasterCard.(3[47]\d{13})
für AMEX.((?:5020|5038|6304|6579|6761)\d{12}(?:\d\d)?)
für Maestro.(3(?:0[0-5]|[68][0-9])[0-9]{11})
für Diners Club.(6(?:011|5[0-9]{2})[0-9]{12})
für Discover.(35[2-8][89]\d\d\d{10})
für JCB.
- See previous answers
- Weitere Antworten anzeigen