web-dev-qa-db-fra.com

Supprimer le tiret d'un numéro de téléphone

Quelle expression régulière utilisant Java pourrait être utilisé pour filtrer les tirets '-' et ouvrir les crochets fermés d'une chaîne représentant les numéros de téléphone ...

de sorte que (234) 887-9999 devrait donner 2348879999 et de même 234-887-9999 devrait donner 2348879999.

Merci,

27
zoom_pat277
phoneNumber.replaceAll("[\\s\\-()]", "");

L'expression régulière définit une classe de caractères composée de n'importe quel caractère d'espacement (\s, Qui est échappé par \\s Parce que nous transmettons une chaîne), un tiret (échappé parce qu'un tiret signifie quelque chose de spécial dans le contexte des classes de caractères) et entre parenthèses.

Voir String.replaceAll(String, String) .

[~ # ~] modifier [~ # ~]

Par gunslinger47 :

phoneNumber.replaceAll("\\D", "");

Remplace tout non-chiffre par une chaîne vide.

66
Vivin Paliath
    public static String getMeMyNumber(String number, String countryCode)
    {    
         String out = number.replaceAll("[^0-9\\+]", "")        //remove all the non numbers (brackets dashes spaces etc.) except the + signs
                        .replaceAll("(^[1-9].+)", countryCode+"$1")         //if the number is starting with no zero and +, its a local number. prepend cc
                        .replaceAll("(.)(\\++)(.)", "$1$3")         //if there are left out +'s in the middle by mistake, remove them
                        .replaceAll("(^0{2}|^\\+)(.+)", "$2")       //make 00XXX... numbers and +XXXXX.. numbers into XXXX...
                        .replaceAll("^0([1-9])", countryCode+"$1");         //make 0XXXXXXX numbers into CCXXXXXXXX numbers
         return out;

    }
4
Tharaka Devinda