Regex match E.164 international phone number

Mathias WOLFF published on
1 min, 157 words

Les regex sont des outils très puissants pour valider des formats et extraire des parties de chaines de caractères. Voici une regex très utile dans le domaine de la téléphonie permettant de valider si le numéro appelé ou présenté respecte le format internationnal E.164 :

^\+[1-9][0-9]{5,14}$

Voici un exemple d'utilisation en langage Rust :

// include the latest version of the regex crate in your Cargo.toml
extern crate regex;

use regex::Regex;

fn main() {
  let regex = Regex::new(r"(?m)^\+[1-9][0-9]{5,14}$").unwrap();
  let string = "+3390123456789";
  
  // result will be an iterator over tuples containing the start and end indices for each match in the string
  let result = regex.captures_iter(string);
  
  for mat in result {
    println!("{:?}", mat);
  }
}

et en golang :

package main

import (
    "regexp"
    "fmt"
)

func main() {
    var re = regexp.MustCompile(`(?m)^\+[1-9][0-9]{5,14}$`)
    var str = `+3390123456789`
    
    for i, match := range re.FindAllString(str, -1) {
        fmt.Println(match, "found at index", i)
    }
}