Mit der rasanten Entwicklung der modernen Wirtschaft werden Finanztransaktionen immer häufiger. Als gängige Zahlungsmethode müssen Bankkarten ihre Sicherheit und Genauigkeit gewährleisten. Daher ist es sehr wichtig, bei Bankkartentransaktionen die Richtigkeit der Bankkartennummer zu überprüfen. In diesem Artikel erfahren Sie, wie Sie mit regulären PHP-Ausdrücken überprüfen, ob die Eingabezeichenfolge das richtige Bankkartennummernformat hat.
Bankkartennummern werden normalerweise mithilfe des Luhn-Algorithmus überprüft. Dies bedeutet, dass jede Zahl der Kartennummer einzeln gewichtet, die Ergebnisse addiert und schließlich das Modulo berechnet wird. Wenn das Ergebnis 0 ist, bedeutet dies, dass das Format der Bankkartennummer korrekt ist. Die spezifischen Operationen sind wie folgt:
1. Von rechts nach links zählen, die letzte Ziffer der Kartennummer ist die erste Ziffer, nach links drehen, jede Zahl mit 2 multiplizieren, wenn die mit 2 multiplizierte Zahl größer als oder ist gleich 10, dann multiplizieren Sie es. Teilen Sie es in zwei Zahlen auf und addieren Sie die beiden Zahlen.
2. Addiere alle Zahlen multipliziert mit 2.
3. Zählen Sie von rechts nach links, die letzte Ziffer der Kartennummer ist die erste, gehen Sie dann nach links, multiplizieren Sie jede Zahl mit 1 oder nicht und addieren Sie die Ergebnisse.
4. Addieren Sie die Ergebnisse von Schritt 2 und Schritt 3. Wenn das Ergebnis durch 10 teilbar ist, ist das Format der Bankkartennummer korrekt.
Der obige Überprüfungsprozess kann einfach mithilfe regulärer PHP-Ausdrücke durchgeführt werden. Die spezifischen Implementierungsschritte sind wie folgt:
Schritt 1: Bankkartennummer formatieren
Bankkartennummern können nur Zahlen enthalten, daher müssen Sie die preg_replace-Funktion von PHP verwenden, um nicht numerische Zeichen in der Zeichenfolge durch Leerzeichen zu ersetzen.
$bank_card_number = preg_replace('/D/','',$bank_card_number);
Schritt 2: Überprüfen Sie die Zeichenfolgenlänge
Die Länge der Bankkartennummer beträgt normalerweise 16 oder 19 Ziffern, daher müssen Sie die strlen-Funktion von PHP verwenden um die Zeichen zu überprüfen. Ob die Zeichenfolgenlänge 16 oder 19 beträgt.
if(strlen($bank_card_number) !== 16 && strlen($bank_card_number) !== 19){
// 长度不正确
}
Schritt 3: Verifizierung des Luhn-Algorithmus implementieren
Verwenden Sie die preg_match-Funktion von PHP in Kombination mit regulären Ausdrücken, um Luhn zu implementieren Algorithmusüberprüfung.
$len = strlen($bank_card_number);
$sum = 0;
for($i = 0; $i < $len; $i++){
$value = intval($bank_card_number[$len - $i - 1]); $sum += (($i % 2) !== 0) ? (($value * 2) >= 10 ? ($value * 2 - 9) : ($value * 2)) : $value;
}
if(($sum % 10) ! == 0){
// 格式不正确
}
Jetzt integrieren wir den obigen Code in eine Funktion, um die Funktion zur Überprüfung des Bankkartennummernformats zu implementieren.
Funktion verify_bank_card_number($bank_card_number) {
$bank_card_number = preg_replace('/D/','',$bank_card_number); if(strlen($bank_card_number) !== 16 && strlen($bank_card_number) !== 19){ return false; } $len = strlen($bank_card_number); $sum = 0; for($i = 0; $i < $len; $i++){ $value = intval($bank_card_number[$len - $i - 1]); $sum += (($i % 2) !== 0) ? (($value * 2) >= 10 ? ($value * 2 - 9) : ($value * 2)) : $value; } if(($sum % 10) !== 0){ return false; } return true;
}
Rufen Sie diese Funktion auf und übergeben Sie die Zeichenfolge der Bankkartennummer, um festzustellen, ob das Format der Bankkartennummer korrekt ist.
$bank_card_number = '6228480402564890018';
if(verify_bank_card_number($bank_card_number)){
echo '银行卡号格式正确';
} else {
echo '银行卡号格式不正确';
}
Durch die obigen Schritte können wir die preg_match-Funktion von PHP für reguläre Ausdrücke verwenden Benutzer schnell verifizieren Ist die eingegebene Bankkartennummer korrekt? Dadurch können Probleme wie Transaktionsfehler aufgrund falscher Eingabe von Bankkartennummern wirksam vermieden werden.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie einen regulären PHP-Ausdruck, um zu überprüfen, ob die Eingabezeichenfolge im richtigen Bankkartennummernformat vorliegt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!