Sha256: ce88fec9cc0b28f763d86c16505ae1369978127c211e9d69f9e26bb81a16c684

Contents?: true

Size: 1.75 KB

Versions: 45

Compression:

Stored size: 1.75 KB

Contents

# Phone Number
Clean up user-entered phone numbers so that they can be sent SMS messages.

The **North American Numbering Plan (NANP)** is a telephone numbering system used by many countries in North America like the United States, Canada or Bermuda. All NANP-countries share the same international country code: `1`.

NANP numbers are ten-digit numbers consisting of a three-digit Numbering Plan Area code, commonly known as *area code*, followed by a seven-digit local number. The first three digits of the local number represent the *exchange code*, followed by the unique four-digit number which is the *subscriber number*.

The format is usually represented as

```text
(NXX)-NXX-XXXX
```

where `N` is any digit from 2 through 9 and `X` is any digit from 0 through 9.

Your task is to clean up differently formatted telephone numbers by removing punctuation and the country code (1) if present.

For example, the inputs
- `+1 (613)-995-0253`
- `613-995-0253`
- `1 613 995 0253`
- `613.995.0253`

should all produce the output

`6139950253`

**Note:** As this exercise only deals with telephone numbers used in NANP-countries, only 1 is considered a valid country code.

# Tip
A function with a *return type* can only return data of that *type* and `null`.
However the function caller is only expecting one data type.

Example:
```dart
String hello(int a){
    if ( a == 0){
        return "a";
    } else {
        return null;
    }
}
```
To make it more clear that this function can also return `null` or more data types, use `dynamic`.
```dart
dynamic hello(int a){
    if ( a == 0){
        return "a";
    } else {
        return null;
    }
}
```

## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
trackler-2.2.1.104 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.103 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.102 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.101 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.100 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.99 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.98 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.97 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.96 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.95 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.94 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.93 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.92 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.91 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.90 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.89 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.88 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.87 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.86 tracks/dart/exercises/phone-number/README.md
trackler-2.2.1.85 tracks/dart/exercises/phone-number/README.md