Heim > Backend-Entwicklung > PHP-Tutorial > So verwenden Sie einen regulären PHP-Ausdruck, um zu überprüfen, ob die Eingabezeichenfolge im richtigen Bankkartennummernformat vorliegt

So verwenden Sie einen regulären PHP-Ausdruck, um zu überprüfen, ob die Eingabezeichenfolge im richtigen Bankkartennummernformat vorliegt

PHPz
Freigeben: 2023-06-24 13:20:01
Original
1507 Leute haben es durchsucht

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){

// 长度不正确
Nach dem Login kopieren

}

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;
Nach dem Login kopieren

}
if(($sum % 10) ! == 0){

// 格式不正确
Nach dem Login kopieren

}

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;
Nach dem Login kopieren

}

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 '银行卡号格式正确';
Nach dem Login kopieren

} else {

echo '银行卡号格式不正确';
Nach dem Login kopieren

}

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage