0
votes

Comment remplacer le numéro de téléphone portable avec des étoiles, à l'exception des 4 derniers chiffres de PHP

J'essaie de remplacer le numéro de téléphone portable avec des étoiles, à l'exception des 4 derniers chiffres dans un texte et le texte est dynamique.

Result will be like 
Eg. John's Mobile number is ******4343 and he is from usa.
Eg. John's Mobile number is ******4343 and he is from india.
Eg. Sunny's Mobile number is ******4343 and he is from india.
Eg. Rahul's Mobile number is ******2312 and he is from india.


7 commentaires

Quelle est la règle pour envisager un numéro de téléphone mobile? I.E Nous pouvons avoir différents types de chiffres numéro de téléphone portable, numéros sans frais, numéros fixes, etc.


Un numéro de contact peut être n'importe quoi avec code de pays ou sans. et des numéros sans frais comme 1800-120-9878 et si vous trouvez un chiffre avec + ou - ou sans aucun de ceux-ci, il devrait remplacer le chiffre entier à l'exception des quatre derniers.


Eh bien, cela fonctionne mais remplaçant les quatre derniers chiffres de Star. Je veux remplacer tous les numéros mobiles à Star, à l'exception des quatre derniers chiffres pour être tel qu'il est.


OK, essayez preg_replace_callback ('~ \ +? \ D + (?: [- \ s] * \ d) * (?: [- \} (?! -? \ d)) ~ ', fonction ($ m) {return prég_replace (' \ \ d ~ ',' * ', $ m [0]);}, $ dynamic_var)


mais il n'a pas dépassé + et - des autres intrants


Ensuite, utilisez Preg_replace ('~ [\ d + -] ~', '*', $ m [0]); à l'intérieur.


Vous ne pouvez utiliser que la solution d'Ejuhjav si les 4 chiffres à la fin sont toujours collés ensemble.


3 Réponses :


1
votes

Vous pouvez y parvenir directement à partir de votre $ dynamic_var comme celui-ci par exemple:

$dynamic_var = "John's Mobile number is 8767484343 and he is from usa.";
$result = preg_replace_callback('/(?<=\s)(\d|-|\+)+(?=\d{4}\s)/U', function($matches) {
    return str_repeat("*", strlen($matches[0]));
}, $dynamic_var);


0 commentaires

1
votes

De ce que je vois de votre entrée d'échantillon et de votre sortie souhaitée, vous n'avez pas besoin de la surcharge de Preg_replace_callback () . Une longueur variable Lookahead vous permettra de remplacer un caractère à la fois avec un astérisque si longtemps, puis de 4 chiffres ou plus de chiffres ou d'hyphpe.

code: ( démo ) xxx

sortie: xxx

Je pouvais rêver quelques caisses franges qui ne seront pas traitées par mon extrait, mais chaque fois que vous avez affaire à un numéro de téléphone qui ne respecte pas un format strict, vous descendez un trou de lapin de défis.


1 commentaires

@Rohit supprimer la virgule de mon motif antérieur. J'ai mis à jour.



1
votes

vieux mais utile ... xxx


0 commentaires