
A Chinese mobile number looks like this domestically: 138 0013 8000, and internationally: +86 138 0013 8000 (stored in E.164 as +8613800138000). A Beijing landline reads 010-6512-3456 at home, but drop the trunk zero abroad: +86 10 6512 3456. The rule that matters most: Chinese mobiles are always 11 digits starting with 1, and the country code is always +86.
TL;DR:
- Chinese mobile numbers are always 11 digits long and start with the prefix 1, with the second digit ranging from 3 to 9, though prefix ranges can change over time.
- Landline area codes vary between 2, 3, or 4 digits, with major cities like Beijing and Shanghai using shorter codes, and must have the leading zero dropped when dialling internationally.
- When dialling from abroad, omit the trunk zero and use +86 followed by the number, ensuring full validation includes stripping non-digit characters and normalising digits.
- IoT devices use 13-digit numbers starting with 140 to 144, which can cause validation errors if only 11-digit checks are assumed.
- Emergency numbers and business lines like 110, 119, 12306, and 400/800 numbers follow different formats and should be treated as separate from standard mobile and landline numbers.
Every Chinese mobile number follows the same skeleton: 11 digits, starting with 1, split into a 3 digit prefix and two blocks of 4. Written out, that’s 1XX XXXX XXXX. The first three digits identify which carrier or service range issued the number, not a region, since mobile numbers in mainland China have been decoupled from geography for years, according to the national numbering plan documented on Wikipedia.
That single fact trips up a lot of people filling in forms for the first time. A UK reader used to dialling codes tied to towns might assume a Chinese mobile prefix tells you where someone lives. It doesn’t. A number starting 138 could belong to someone in Shanghai, Chengdu, or a village in Yunnan.
Here’s how the same number can legitimately appear across different contexts:
Mobile numbers run to 11 digits. That’s the standard length across every active mobile prefix in mainland China, confirmed by the numbering plan on Wikipedia. It’s worth memorising that figure alone if you only take one thing from this section, because it’s the fastest way to spot a malformed number before it ever reaches a database.
There’s one exception worth flagging early, because it catches out anyone writing validation rules. Numbers beginning 140 through 144 are reserved for Internet of Things devices, SIM cards used in trackers, industrial sensors, connected vehicles and similar hardware, and they run to 13 digits rather than 11, per the same Wikipedia entry on Chinese numbering. If your form assumes every “1” prefixed number is exactly 11 digits long, an IoT SIM will fail silently or get truncated.
Carrier ranges also shift over time as regulators open new blocks to meet demand. A prefix that’s unused today might be allocated next year, and one that looks obscure now might become common. Treat any fixed list of “valid” prefixes as a snapshot, not a permanent rule, and lean on a maintained library rather than memory when it actually matters for a production system.
Landlines split into two parts: an area code and a subscriber number, and the split isn’t uniform. Major cities such as Beijing and Shanghai get short, 2-digit area codes because they historically needed more subscriber capacity. Smaller cities and prefecture-level regions get 3 or 4-digit codes instead, leaving fewer digits for the subscriber number itself.
The pattern holds consistently across the country’s biggest hubs, as reflected in area-code references for major Chinese cities:
Notice Shenzhen breaks the two-digit pattern. It uses a 4-digit code (0755) despite being one of China’s largest cities, a reminder that population size alone doesn’t predict code length. Regional allocation history matters more than current city size.
The subscriber number itself typically runs 7 to 8 digits, meaning a full landline number (area code plus subscriber number) usually lands somewhere between 10 and 12 digits total once you include the leading 0.

Writing these for international use means one change: drop the leading trunk zero from the area code the moment you attach +86. So Beijing’s domestic 010-6512-3456 becomes +86 10 6512 3456 for an overseas caller or on an international business card, exactly as outlined in dialling format guidance for +86 numbers. Miss that step and the number simply won’t connect, because the receiving network reads the extra zero as part of a different routing sequence.
A few more worked examples, side by side:
| City | Domestic format | International format |
|---|---|---|
| Beijing | 010-6512-3456 | +86 10 6512 3456 |
| Shanghai | 021-6321-9876 | +86 21 6321 9876 |
| Shenzhen | 0755-8888-9999 | +86 755 8888 9999 |
Dialling rules change depending on where the call starts and whether you’re ringing a mobile or a landline. Follow these steps in order for whichever situation applies:
That fourth step is where most confusion happens, mainly because exit codes differ by country. A caller in the UK dials 00 first: 00 86 10 6512 3456 reaches that Beijing office. Someone dialling from the United States uses 011 instead: 011 86 138 0013 8000 rings that mobile directly, following the pattern confirmed in practical +86 dialling examples.
Most smartphones sidestep exit codes entirely by letting you use the + shorthand. Typing +86 10 6512 3456 or +86 138 0013 8000 works from almost any mobile handset worldwide, because the device automatically translates the + into whatever exit code your local network requires. It’s the safest format to give someone if you don’t know which country they’re calling from.
One more point worth stating plainly: never combine the leading 0 with +86. Numbers such as +86 010 6512 3456 look plausible but are wrong. The zero is a domestic trunk prefix; +86 already tells the network it’s routing internationally, so the zero becomes redundant and, on some systems, breaks the call entirely.
Chinese numbers show up in at least four distinct formats depending on context, and mixing them up in a database or a customer-facing form causes more support tickets than almost any other localisation mistake.
Grouping mobile digits as 3-4-4, for example 138 1234 5678, makes numbers noticeably easier to read back correctly over a phone call, which matters more than it sounds when you’re confirming a customer’s contact details verbally rather than reading them off a screen.
There’s a quieter formatting issue that catches out a surprising number of forms built for a Chinese audience: full-width versus half-width digits. Numbers typed on a Chinese input method can render as full-width characters (13800138000) rather than standard half-width digits (13800138000), and they look almost identical on screen while being completely different characters to a validation script. Any form accepting Chinese input needs to normalise full-width digits to half-width before running length or prefix checks, a step covered in practical guidance for implementing Chinese phone numbers in apps.

Privacy masking follows a fairly universal convention: show the first three digits, mask the middle four with asterisks, and show the last four. So 138 0013 8000 becomes 139****5678 style masking on receipts, order confirmations or customer service screens, protecting the subscriber’s identity while still letting them recognise their own number.
Pro Tip: Store every number in E.164 format internally, but display it in the local, human-readable format the user expects. A database full of +8613800138000 entries is unambiguous and easy to query, while a screen full of the same raw string is hostile to read. Keep the two jobs separate.
If you’re building interfaces aimed partly at Chinese speakers rather than just Chinese numbers, tools like a Chinese content generator built for multilingual SEO can help with the surrounding language, though the number formatting rules above stay the same regardless of which language wraps around them.
Validation breaks down into four repeatable steps, and skipping any one of them is where most homegrown scripts fall over.
For a quick client-side sanity check, a simple regular expression such as ^1[3-9]\d{9}$ catches the shape of a standard mobile number, that is, 11 digits starting with 1 followed by a second digit between 3 and 9. It’s a fast first pass, not a complete solution.
Mobile numbers are 11 digits, always starting with 1, and that single constant is what makes even a basic regex useful as a first filter, per the numbering rules documented on Wikipedia.
That regex will happily accept prefixes that don’t actually exist yet, or reject new ones as they’re allocated, because carrier ranges shift over time. For anything running in production, Google’s libphonenumber library is the stronger choice, since it’s actively maintained against real-world allocation data rather than a static pattern someone wrote once and forgot about.
Pro Tip: If your form has separate fields for “mobile” and “landline”, validate them with different rules rather than one shared pattern. A mobile-only field can safely reject anything that isn’t 11 digits starting with 1, while a landline field needs to accommodate variable area-code lengths across different cities.
Handle unknown or unassigned prefixes cautiously rather than rejecting them outright. Regulators open new mobile ranges periodically, and a hardcoded prefix list will always lag behind real allocations. Where possible, lean on a library’s built-in metadata rather than a list you maintain by hand, since that data gets refreshed as new ranges open.
The leading digit 1 on a Chinese mobile number simply flags “this is a mobile number” to the network, the same way a country code flags a country. The second digit, ranging from 3 through 9, groups numbers into blocks historically tied to specific carriers and service types, though consolidation and new entrants have blurred those lines over the years.
That 140 to 144 exception deserves repeating on its own, because it’s the single most common source of validation bugs. Anything assuming “starts with 1, therefore 11 digits” will mishandle an IoT SIM without warning.
Given how often new ranges open, the safest long-term approach isn’t memorising a prefix table at all. It’s consulting current numbering plan documentation or letting a maintained library such as libphonenumber handle the lookup, since prefix allocations that were accurate a year ago can quietly go stale.
Alongside standard mobiles and landlines, China runs a set of short, fixed-format numbers for emergencies, transport bookings and business services, and they follow entirely different rules from personal numbers.
These short codes and business numbers aren’t dialled the way mobiles or landlines are, and they generally aren’t reachable at all from outside mainland China, since 110, 119 and 12306 route only within the domestic network. A 400 or 800 business number sometimes has an alternative direct line for international callers, but it’s worth checking with the business directly rather than assuming +86 in front of a 400 number will work the way it does for a standard landline.
For anyone designing a form, it’s worth treating these as a separate input category entirely rather than trying to squeeze them into a “phone number” field built for 11-digit mobiles or area-code landlines, since they don’t share the same length or structure rules.
The single most frequent error is keeping the leading 0 when adding +86. Writing +86 010 6512 3456 instead of +86 10 6512 3456 is the mistake that breaks more international calls than anything else on this list, and it’s an easy one to catch with a simple find and replace once you know to look for it.
Miscounting digits comes second. A mobile number that’s 10 or 12 digits long instead of 11 is almost always a typo or a copy-paste error, not a legitimate variant, with the sole exception of 13-digit IoT numbers starting 140 to 144.
Failing to normalise input trips up more forms than either of those. Full-width digits, stray spaces, hyphens in inconsistent places: all of it needs cleaning before any validation logic runs, not after.
Here’s a six-point check I’d run before saving or dialling any Chinese number:
Get those six right and you’ll avoid the overwhelming majority of formatting errors that show up in customer databases and contact forms built without this checklist in mind.
— Rob
The national numbering plan documented on Wikipedia is the clearest single reference for area-code lengths, mobile prefix structure and the 140 to 144 IoT exception, and it’s the first place to check when a number looks unfamiliar.
For anything going into production code, Google’s libphonenumber implementation guidance covers normalisation, E.164 storage and validation logic in far more depth than any regex alone can manage.
Practical dialling format guidance is useful for confirming international dialling sequences and city-specific area codes side by side.
For a closer look at how mobile-specific validation and display should work in practice, Phonenumbers has covered what a valid Chinese mobile number looks like in more detail, and if you’re comparing formatting conventions across countries, the Australian phone number format is a useful side-by-side reference.
If your business needs a UK number that’s easier for customers to recall than a standard geographic line, browsing memorable UK numbers available through Phonenumbers is worth doing alongside sorting out your international formatting, since the two problems, getting numbers right and getting numbers memorable, tend to show up together for growing businesses.
+86 is China’s international country code, used in place of the domestic trunk zero whenever a number is dialled from outside mainland China, such as +86 138 0013 8000 for a mobile or +86 10 6512 3456 for a Beijing landline.
+86 is always China’s country code regardless of what follows it; a number with +86 is simply a Chinese mobile number, not a separate country.
No. +44 is the United Kingdom’s country code. China’s country code is +86, and the two are never interchangeable when dialling internationally.
A Chinese mobile number is 11 digits starting with 1, shown as 138 0013 8000 domestically or +86 138 0013 8000 internationally, while a landline pairs a 2 to 4-digit area code with a 7 to 8-digit subscriber number, such as Beijing’s 010-6512-3456.