43

What is the best way to write a phone number? Are there any studies in this regard?

I personally consider two factors:

Country code:

+393401234xxx

or

00393401234xxx

The first example I think is more legible, but perhaps not understandable for those who do not have the proper familiarity with the phone.

Spacing:

+393401234xxx

or

+39 340 12 34 xxx

I personally use spacing every 2-3 digits because I think it is more readable, especially for dyslexics. But I'm not sure the best way.

  • 17
    What country is this in? The current American standards are 555-1212 and 1(800) 555-1212. The American standard used to be JK5-1212. – Jasper May 22 '17 at 23:13
  • 11
    No matter what solution you pick, just make sure it's not too region-specific. A little bit of me dies inside every time I see an Australian mobile number formatted as (04x) xxx-xxxx – The6P4C May 23 '17 at 9:48
  • 5
    Do you really need a telephone number? There's research that suggests asking for the number will hurt contact form submission rates – icc97 May 23 '17 at 16:38
  • 12
    @icc97 It's certainly common to drop a 0, but not universal. As an obvious example, North America has no 0 to drop (arguably, you drop the 1 off the beginning, then add 1 as the international code). Note that using 00 as the prefix to dial out is also not universal, which is why universal formats begin with +. – IMSoP May 23 '17 at 17:10
  • 8
    Ask yourself why you feel the need to change the format that the user as used? Whether they enter +353 86 123 4567 or 00353861234567 or, sin of sins, 086-123-4567, why not accept that they have already used the format they are most comfortable with. – Paul Smith May 24 '17 at 10:41

16 Answers 16

107

Libraries exist to do this. For spacing, I feel very strongly that the spacing expected by the user is the spacing you should use.

Most people remember phone numbers (especially their own) with a kind of rhythm based on (usually) the official spacing used in their region. When they see their number in a spacing other than that which they expect, they might not immediately recognise it as their own phone number, and become confused. It will also be harder to remember and/or recognise other people's phone numbers.

Where parts of a phone number are also optionally omitted (eg an area code if you're in the same area), using the official spacing is also important to help people quickly identify the part they can omit when dialling.

So, please, for spacing, use a library to show the numbers in the format which the user expects.

  • 4
    This is a massively underrated answer -- familiarity is a big deal. In addition trying to force one country's format into another can lead to issues – Chris H May 23 '17 at 14:04
  • 8
    And the form the user expects is what they use which is not what experts say should be used - e.g. London UK numbers are officially 020 xxxx xxxx but many (most ) use 020x xxx xxxx What does your library use and which 50% of people do you want to annoy. – Mark May 23 '17 at 14:14
  • 7
    Worth adding that the OLD North American standard of (999) 999-9999 used parenthesis to emphasize that the 3-digit area code was for direct-dialed long distance only, and was to be omitted for local calls. Where 10-digit dialing is in force, which is now most of the continent, numbers should be expressed as 999-999-9999 to emphasize that the 3-digit area code is required for both long distance and local calls. – Pieter Geerkens May 23 '17 at 21:56
  • 4
    @rexkogitans it's not about the number itself most of the time but really what people are used to. In France it would be 0 800 223 332, spelt "zero, eight hundred, two hundred and twenty-three, three hundred and thirty-two". Change the grouping and the spelling gets completely different! Normal phone numbers (not 0 800) are always grouped by two: 06 48 62 26 69, or +33 6 48 62 26 69. You can get an idea there: fr.wikipedia.org/wiki/… – Shautieh May 24 '17 at 11:10
  • 4
    @Muzer but whatever else, do not turn "01912 345678" into "0 19 12 34 56 78" or "191-234 5678" etc on an international site. That amounts to rudeness. – nigel222 May 24 '17 at 13:18
30

Use non-breaking spaces

Other answers have talked about the pros and cons of spacing and where to place the spacing. I would like to mention one more issue. If your interface is ever going to be translated to a language like Arabic or Hebrew with a right-to-left writing system, there is an issue with spaces that you need to be aware of. Take the phone number 12345678, you may want to format it like 12 345 678. If the right-to-left setting has been set, it could end up being displayed like this instead:

"Left-to-right" and "Right-to-left with non-breaking spaces" display number as intended, whereas "right-to-left with normal spaces" displays the number in the wrong order

As you can see, when the right-to-left direction has been set, and when normal spaces are used, the number ends up getting displayed in the wrong order. It's as if the program considers 12 a separate number from 345 and from 678, and so displays each number separately, from right to left.

So either don't use spaces, or use non-breaking spaces (  in HTML, or U+00A0).

Using non-breaking spaces is a good idea even in a left-to-right context, because it would prevent the number from getting split up due to wrapping.

(Note that it's not enough to use CSS like white-space: nowrap, you have to use non-breaking spaces.)

  • @Kornel Nope, that doesn't work. Try it yourself, it will not solve the right-to-left issue. Can you let me know what doesn't support non-breaking spaces? – Flimm May 30 '17 at 9:40
14

I agree that this is not only country dependent, but also region dependant.

Local numbers can have different lengths. And this separation should make clear where the local number starts.

So the first way to decide is how the local number, by local people is used.

https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers


But a more general approach would be 4 digit groupings (look at a credit card, and see how easy is to say out loud those numbers)

One unscientific rule I use is that this grouping should leave the last digits as a group of four. Otherwise, that leaves the sensation that one number is missing.

  • 555 5656

  • 5555 656

*Based on Michael Kjörling comment, on a 5 digit local number, the sensation of a number missing:

  • 555 56 vs

  • 55 556

But again, this can be override by the rule 1, the usage by local people.


Another non written rule is if the number is catchy.

For example a 1-800 number. Normally you group that series of numbers really fast and leave the rest to be grouped as you can.

A 1-800 then is grouped:

  • 1-800-123-4567 and not

  • 1-80-0123-4567

If you have a number like this:

  • xx123456

You probably want to emphasize the sequence, the rhythm, so you probably can

  • xx-123-456 and not

  • xx12-3456

So you need to combine this "rules".

I remember some old TV campaigns that the number was a Jingle.

  • 3
    +1 for leaving catchy parts of a number intact (this also goes for repetitions). Additionally, I would consider even larger groupings than four digits, as in @DPS's answer. – Emil May 23 '17 at 10:03
  • 3
    In Germany we group by "area distance" so like +49 (xxx) yyyyyyy - zzz and leave out the +49 part if it is definetly not in an international context, often the () is left out and spaces are only used. xxx is the area code and quite important if you want to judge the costs of the call (not that important anymore since nationwide calls cost the same these days, but calls to mobile phones still cost more). The -zzz part is usually not part of the official number but the switchboard, so you know that replacing that with a 0 will almost certainly get you to a central point. – PlasmaHH May 23 '17 at 10:58
  • 2
    "One unscientific rule I use is that this grouping should leave the last digits as a group of four." My home landline phone number is +46 (for Sweden) followed by a three- or four-digit area code (depending on whether you count the initial 0), followed by a five-digit local number. Your format would cause this to become something like +46 (0)123 4 5678. I'm not sure that's particularly readable. The official grouping is 4+3+2 +46 (0)123 456 78 but I personally prefer to group it 4+2+3 +46 (0)123 45 678 because of the value of the last group when written that way. – a CVn May 24 '17 at 11:09
  • The "principle" is simmilar. Leaving the long number last. I'll edit that. – Rafael May 24 '17 at 14:13
  • 5
    "One unscientific rule I use is that this grouping should leave the last digits as a group of four." This answer is very North America-centric. There is a wide variety of formats used around the world. Don't make one up and force people to use it. – isanae May 25 '17 at 2:21
10

According to Miller’s Law

The number of objects an average person can hold in working memory is about 7 +/- 2.

Considering to his research we can have:

10 digit format: (+1) 12345-67890

7 digit format: (+1) 123-4567

6 digit format: (+1) 123-456

I don't see a need to break the 10 digit format with 2 hyphens/spaces as it will work well with just 1 hyphen/space.

(+1) 365-245-8975

(+1) 36524-58975

Here, the second format is better to read and dial than the first, because in first format you have to read the number 3 times, and in second just 2. Or some might combine the first two (365-245) as they start dialing.

^

Twenty-four countries and territories share the North American Numbering Plan (NANP), with a single country code. It is a closed telephone numbering plan in which all telephone numbers assigned to telephones consist of seven digits.

The formatting convention for phone numbers is (NPA) NXX-XXXX, where NPA is the numbering plan area code and NXX-XXXX is the subscriber number. The prefix NXX of the subscriber number is a code for the local central office, unique in the numbering plan area. The place holder N stands for the digits 2 to 9, as the subscriber number may not begin with the digits 0 and 1.

National conventions for writing telephone numbers

Edit:

Here, I've considered only the mobile users, but thanks to @plasmahh for bringing in landlines (in comments below) and their appearance on screen for incoming calls.

  • 14
    There are countries/cultures where it is not only common to distinctly group the area code, but even confusing for people if you didn't do it but group them differently. These things can be important for people to see if the call is especially expensive e.g. whether they call a mobile phone or not. Breaking these assumptions in how numbers are layed out will annoy those people that are used to their local way of writing them – PlasmaHH May 23 '17 at 10:33
  • 3
    It depends on what you want to make easy. Implementation? sure. Input? Of course. Reading and using? I don't see how an unusual arrangement that is breaking existing expectations is making anything easy in that regard. The OP is providing too little context to tell where it fits. – PlasmaHH May 23 '17 at 11:01
  • 8
    It may be for north american numbers, but if someone would write a number in my city as +49 699 3456 instead of +49 69 93456 as it would be normally done, I bet an awful lot of people will dial 3456 instead of 93456. Similarly if someone wrote a number as +49 5118 4173 instead of +49 511 84173 people would look up what area code 5118 is supposed to be and find nothing. – PlasmaHH May 23 '17 at 11:14
  • 7
    if i see a dash in a phone number i presume i have landed on a US site by mistake. Unilaterally attempting to standardise something like this is a bad idea – Steve May 23 '17 at 11:30
  • 3
    @DPS: It might be different where you live, but here we do. I do the majority of my phone calls from a landline to a landline, for reasons of price and convenience (e.g. my work landline has a nice headset, at home my chrome plugin can call the number directly from my computer). So do a lot of people I know. Not many people will always chose mobile over landline when they are at home/work and both is available. Btw. it may also be a matter of incoming phone calls, in a missed calls list "oh, I don't know that number from city xyz, that must be abc, he is living there" – PlasmaHH May 23 '17 at 11:46
8

There is an ITU-T Recommendation E.123 for the presentation of telephone numbers.

This Recommendation applies specifically to the printing of national and international telephone numbers, electronic mail addresses and Web addresses on letterheads, business cards, bills, etc. Regard has been given to the printing of existing telephone directories. The standard notation for printing telephone numbers, E-mail addresses and Web addresses helps to reduce difficulties and errors, since this address information must be entered exactly to be effective.

See also the Wikipedia entry.

However the question of how to group numbers with spaces is not addressed by E.123 and is a matter of national convention (and even then often ignored). For example UK telephone numbers are conventionally grouped 07xxx yyy zzz but some people group them 07xx xyy yzzz.

  • 2
    Could you expand the answer by quoting/describing more about E.123? – Andrew T. May 23 '17 at 9:47
  • Unless I'm missing a large part of it, this standard seems to define what punctuation to use (spaces, parentheses in specific circumstances) but not where to use it (how many spaces? where should they be put?). – IMSoP May 23 '17 at 17:36
  • @IMSoP AIUI, the placing of spaces is a matter of national convention. What E.123 tells for (for example) is things like not mixing national and international syntax at the same time. – Alnitak May 23 '17 at 18:57
  • @Alnitak Right, but since spacing was one of the two things the OP asked about, I just thought I'd clarify that this doesn't directly answer that part of the question. – IMSoP May 23 '17 at 22:15
6

I believe there cannot be a single format here, since it may vary depending on the country. For example, in India, mobile phone numbers are 10 digit. It may be represented as 3-3-4. A good format, in my view, will be how you might verbally communicate a phone number which is usually in chunks of 3 or 4 digits. This will increase retention otherwise the user will have to put in cognitive effort to break a larger number into smaller chunks.

5

The second half of your question (spacing) seems to be well covered by other answers, so I'll address the first half:

Country code:

+393401234xxx

or

00393401234xxx

The first example I think is more legible, but perhaps not understandable for those who do not have the proper familiarity with the phone.

This is not solely a readability factor. It's also a localization issue. The first format, is valid everywhere: the + symbol means "dial the international prefix". The second format, means exactly what it says, "dial 00". Whether or not that is the correct international prefix depends on what country you're dialing out from. While 00 is correct for most countries, there are plenty of countries that use something different.

So, which format you use depends on whether or not you care about displaying the correct telephone number to users from countries that do not use 00 as the international prefix.

4

For me, the best way to display a phone number is preserving exactly the way I have entered it. Do not try to change it to a uniform standard.

  • There can be unusual patterns in numbers that make them easier to remember or recognize e.g. 1 22 333 becomes worse if you format it as 12 23 33.

  • "Standard" formats were created in the era of landlines and number routing tied to physical switches, so are based around concepts of city/area and network provider codes. In the era of mobile phones and number portability between operators most of it stopped making any sense.

  • It's a massive localization challenge that can backfire if done incorrectly. Be careful not to force US-centric formatting on users outside US. This could not only hinder readability of numbers from around the world, but also make your product appear ignorant.

  • 2
    I don't think the OP is talking about form entry. This about how to present a number to the user. – plainclothes May 23 '17 at 19:07
  • 1
    @IMSoP The organization should still have a pattern for their own display of the number. This isn't about entry of any kind. – plainclothes May 23 '17 at 22:19
  • 1
    @plainclothes What organization? How do you know it's "not about entry of any kind"? I understand how you're interpreting the question, but I don't see why you're so sure, because the wording of the question seems quite broad and ambiguous to me. – IMSoP May 23 '17 at 22:28
  • 1
    Just interpreting the question: "What is the best way to write a phone number? … The first example I think is more legible …" Users aren't concerned with the best or most legible format. This is a question of the right format for presentation to users / customers. – plainclothes May 23 '17 at 22:40
  • 3
    "Be careful not to force US-centric formatting on users outside US." Like how when I call some people in the US who have call screening and am prompted to "please enter your ten-digit telephone number now". As luck would have it my home landline phone number can be crammed into ten digits, but my cell phone number or my work phone number cannot be. And of course it shows up all weird to the callee. – a CVn May 24 '17 at 12:22
2

Respect regional expectations

As the answers here indicate, there are a lot of local variations. You'll generally be able to find the regionally appropriate arrangement with a survey of common use.

Users are accustomed to remembering certain types of things (e.g. phone numbers) in certain patterns. Respect the patterns and users will thank you.

The bigger issue

Fortunately, very few of us have to commit numbers to memory now. We have access to the World's information on our phone. Search for the person or company you want to call, and just tap the number — it's magic! ✨

IOW, in today's world …

The most important thing about your number is that no one should have to remember it.

enter image description here

1

I think you can follow the recommendation from Google Developers, Web fundaments:

Use the international dialing format

Always supply the phone number using the international dialing format: the plus sign (+), country code, area code, and number. While not absolutely necessary, it’s a good idea to separate each segment of the number with a hyphen (-) for easier reading and better auto-detection.

Using a hyphenated international dialing format ensures that no matter where the user is calling from, whether a few hundred meters away or thousands of kilometers, their call will be connected. enter image description here

Also, you can see that the default format in popular frameworks like Angular material is: (###) ###-####

enter image description here

  • 2
    This is one thing that Google have got wrong in their UI guidelines. The use of a dash as grouping separator is unusual in many parts of the world (e.g. most of Europe) and will just serve to annoy. Mandating it as a good idea for all numbers is simply idiotic. – Jules May 26 '17 at 13:46
1

The nice thing about standards is that you have so many to choose from. -- Andrew Tanenbaum

I think that promoting a single standard, even if not well-known in certain locales, might be helpful in the long run to get more people to understand and expect this format.

Others have also pointed to the E.123 international notation, e.g. +22 607 123 4567.

However, I have found the Microsoft Canonical format (see same E.123 article as it is derived from it) slightly more helpful when not needing the country code (for internal dialling), e.g. +22 (607) 123 4567.

That said, personally I haven't used a manual land-line telephone in years (either dial or buttons). The numbers in my Android phone book are displayed with dashes instead of spaces of the E.123 if not stored with formatting, and storing them with the international dialling code does not make any difference when calling them on the mobile network.

  • "see same E.123 article as it is derived from it" is ambiguous and I read it as suggesting that E.123 is derived from Microsoft's, when it's the other way around. Anyway, "I think that promoting a single standard ... might be helpful" and "Others have also pointed to ... However, I have found" seem like a contradiction. Promoting a single standard also means following a single standard if one already exists rather than choosing your own different standard. – hvd May 27 '17 at 8:06
0

What about this one?

+country_code(operator)xxx-xx-xx

For example, Ukrainian numbers are often spelled in this way:

+380(95)123-12-12

  • It would be good to provide an actual example of this format, just so we know this is taken from an existing reference since you haven't provided any specific explanation of why this is a user friendly format except it is used in Ukraine, so it might only be a good solution for certain countries. – Michael Lai May 24 '17 at 6:29
  • @MichaelLai I am not sure I can provide a formal specification straightway, but that is just what I know from my personal experience. Also, the OP mentioned "personally using ...", so I thought they expected just an advice based rather on personal feeling of readability than some kind of a formally defined standard. – olegst May 24 '17 at 6:53
  • Oh, I am not asking for a formal specification, but was wondering if there is an actual example you can show because I suspect this was part of the reason for the down vote (not by me). But I think if you can provide more explanation or example then it would attract upvotes. – Michael Lai May 24 '17 at 7:06
  • @MichaelLai I've already added a comment to the question with a link to a lot of example formats recognized by IE11 grouped by country, let them choose what they like the best if any. – olegst May 24 '17 at 7:12
0

Most situations,user should not need to know number's country code. I suggest cancel country code instead of grouping the phone numbers with countries.

  • 1
    I suggest posting some comments to the person who has asked the question so you can get a better understanding of the situation. Even though you are making the assumption that most situations will not require knowledge of the country code, this might not be the case in this particular situation. – Michael Lai May 24 '17 at 6:27
0

This question doesn't explain what is the use for this phone number, and why this format is needed. There can be several different user cases, in which case there isn't a single "one size fits all" answer.

Static Number

In this scenario, OP just needs to add a phone number somewhere. This is very simple, and many answers above covers this case. The only caveat is localization : is the site targeted to an international audience within a country , a regional audience or a local one? In the first case, we'll need international code, in the second case, only area code and in the final case local code may be enough. This way, we avoid unnecessary cognitive load, improve recognition and ability to remember the number, making it easier for the user to dial the number as well.

Please note this is specially true in media: if the number is meant to be used on a site or app, yu'll probably need international codes since the audience you'll reach will be wider, UNLESS you want to restrict access to a single country. If you're using this in magazines, you'll probably leave out international code, using only area code. Finally, on a billboard you won't use any area code, just local number.

Dynamic Number

In this case, the number will be added by different (unknown) users and we need to define an input format. First thing we need to know is what I mention above. For example, if the number the user will input is always inside a country, it's useless and confusing to ask for international code. Additionally, there are libraries that automatically prefill country code based on geo detection or country input from a previous field. This is a recommended way so you don't have to worry about users using 0 or + for international code.

Once you define this is to let the user type the number the way they would dial it on their phones. Hence, no spaces or dashes, only numbers.

The masking scenario

The most common problem with dynamic numbers is that some developers feel the urge to mask inputs so they look nicer (which they do). However, this is very problematic and should be used only to restrict numbers. Alas, this will never work for international numbers (see answers and comments in this page about the many diiferent possible formats) and you'll need to be incredibly sure about the numbering system. A quick example: my city code is 011. My parents city code is 02477. Imagine trying to mask this. And we're talking inside the same country!

In short

The key for the answer is localization, and based on this, whichever format feels more natural for users.

0

Ask yourself 1 question, are you going to be dealing with more than just your nations' phone numbers?

In the UK (where I am from) I would expect a layout as 00000 000000 or 00000 000 000 depending on landline or mobile, respectively (though the former is still valid for a mobile)

America has (000) 000 000 (can't remember the exact layout) as a potential calling system, which wouldn't work for British numbers.

Then you have to question whether you will go with terrestrial numbers (e.g. 00000 000000) or international (+440000 000000). If you already take the user's country, I would personally recommend the terrestrial number, as most people will remember that, and you can work out the international dialling code from that.

  • My UK number is 020 8xxx xxxx... like all London numbers plus many would incorrectly quote that as 0208 xxx xxxx – Mark May 3 '18 at 12:03
-5

When presenting large set of data or digits, you might want to "chunk" your information. Personally I think the easiest to remember is to present your phone number in sets of 4 digits. Ideally country/area code follow by the phone number:

+65 1234 5678

I choose "+" instead of parentheses so that user could click on the number to start dialling immediately.

  • 3
    Your example can't be internationally applied. Singapore numbers are inherently split to 4-digit groups whereas others not, so applying your format to, say, Ukrainian number, you'll end up having operator code and first two digits of the number itself in the first chunk which is illogical. – olegst May 24 '17 at 7:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.