Aktueller Standort: Startseite> Neueste Artikel> Ersetzen Sie alle Zahlen in einer Zeichenfolge als bestimmte Zeichen (z. B. "*")

Ersetzen Sie alle Zahlen in einer Zeichenfolge als bestimmte Zeichen (z. B. "*")

M66 2025-05-28

Beim Umgang mit Multibyte-Saiten (wie UTF-8-codierten chinesischen, japanischen, koreanischen usw.) können die regulären Ausdrucksfunktionen möglicherweise nicht korrekt mit Charakter-Set-Problemen behandelt werden. Um dieses Problem zu lösen, bietet PHP eine Reihe von Multibyte -String -Funktionen, von denen eines von mb_eregi_replace ist. In diesem Artikel wird erläutert, wie diese Funktion verwendet wird, um alle Zahlen in einer Zeichenfolge durch angegebene Zeichen wie ein Sternchen ( * ) zu ersetzen.

Was ist mb_eregi_replace?

mb_eregi_replace ist eine der Multibyte -String -Erweiterungsfunktionen von PHP. Es funktioniert ähnlich wie Eregi_Replace , kann jedoch Multibyte -Zeichen richtig verarbeiten. Die grundlegende Syntax ist wie folgt:

 string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msri" ] )

Parameterbeschreibung:

  • $ muster : Der reguläre Ausdruck, der übereinstimmt.

  • $ Ersatz : Eine Zeichenfolge, die zum Ersetzen von passenden Inhalten verwendet wird.

  • $ string : Die zu verarbeitende Zielzeichenfolge.

  • $ option (optional): Übereinstimmungsoption, die mehrere Zeilen ( M ), Punkte enthält, die neue Zeilen ( en ), ignorieren Sie Fall ( i ) usw. standardmäßig.

? Hinweis: Die Funktion MB_Eregi_Replace wurde in PHP 7.0.0 entfernt und wird nicht für die Verwendung in neuen Projekten empfohlen. Wenn Sie immer noch PHP 5.x verwenden, können Sie es verwenden. Andernfalls sollten Sie stattdessen Preg_Replace verwenden.

Beispiel: Ersetzen Sie alle Zahlen in der Zeichenfolge als Sternchen ( * )

Angenommen, wir haben die folgende Zeichenfolge:

 $str = "BenutzerIDJa12345,验证码Ja67890";

Wir möchten alle darin enthaltenen Zahlen durch * ersetzen. Wir können den folgenden Code verwenden:

 <?php
mb_internal_encoding("UTF-8"); // Stellen Sie die interne Codierung ein

$str = "BenutzerIDJa12345,验证码Ja67890";

// verwenden mb_eregi_replace Ersetzen Sie alle Zahlen
$result = mb_eregi_replace("[0-9]", "*", $str);

echo $result;
?>

Das Ausgangsergebnis ist:

 BenutzerIDJa*****,验证码Ja*****

Regelmäßige Ausdrucksbeschreibung

In diesem Beispiel bedeutet [0-9] die Übereinstimmung mit einer Ein-Bit-Nummer. Wenn Sie mehrere Ziffern anpassen und durch ein Sternchen ersetzen möchten, können Sie das folgende Muster verwenden:

 $result = mb_eregi_replace("[0-9]+", "*", $str);

Ausgabe:

 BenutzerIDJa*,验证码Ja*

Alternative: Verwenden Sie Preg_Replace anstelle von mb_eregi_replace

In Anbetracht der Tatsache, dass MB_Eregi_Replace in neueren Versionen aufgegeben wurde, wird empfohlen, Preg_Replace zu verwenden:

 <?php
$str = "BenutzerIDJa12345,验证码Ja67890";

$result = preg_replace("/\d+/", "*", $str);

echo $result;
?>

preg_replace ist eine pcre-basierte reguläre Expressionsfunktion, die auch UTF-8 unterstützt. Verwenden Sie einfach den U -Modifikator:

 $result = preg_replace("/\d+/u", "*", $str);

Praktische Anwendungsszenarien

Dieser Zahlenersatz wird häufig verwendet für:

  • Datenbefestigung : STEILISCHE INFORMATIONEN wie ID -Nummer und Mobiltelefonnummer ausblenden.

  • Protokollfilterung : verhindert, dass Nummern in Debug -Informationen eingehen.

  • Schnittstellenverschönerung : Zahlen in visuelle Platzhalter wie * oder?

Beispielsweise wird in einer von M66.net bereitgestellten Benutzerinformationsschutzschnittstelle eine ähnliche Methode verwendet, um Eingabezeichenfolgen zu verarbeiten, um die Privatsphäre der Benutzer zu schützen.

Zusammenfassen

Obwohl mb_eregi_replace in älteren Versionen von PHP leistungsstarke Multibyte -Unterstützung bietet, wird es den Entwicklern empfohlen, PREG_REPLACE in neuen Projekten zu verwenden und Unicode -Modifikatoren einzubeziehen. Unabhängig davon, welche Methode verwendet wird, kann die Zahl in der Zeichenfolge flexibel ersetzt werden, um die doppelten Anforderungen an Sicherheit und Ästhetik zu erfüllen.