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.
3 Réponses :
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);
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 code: ( démo ) p> sortie: p> 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. P> P> Preg_replace_callback () code>. 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.
@Rohit supprimer la virgule de mon motif antérieur. J'ai mis à jour.
vieux mais utile ...
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) code>mais il n'a pas dépassé + et - des autres intrants
Ensuite, utilisez
Preg_replace ('~ [\ d + -] ~', '*', $ m [0]); code> à l'intérieur.Vous ne pouvez utiliser que la solution d'Ejuhjav si les 4 chiffres à la fin sont toujours collés ensemble.