Chinese Phone Number Validator & Regex Builder
Check Chinese mobile and landline numbers in bulk, convert them to +86 format, and get a ready-made regular expression for your website's forms — in JavaScript, PHP, Python or HTML.
Validate Numbers and Build Your Regex
Your regular expression
^(?:(?:\+86|0086)[ \-]?)?1[3-9]\d[ \-]?\d{4}[ \-]?\d{4}$
const re = /^(?:(?:\+86|0086)[ \-]?)?1[3-9]\d[ \-]?\d{4}[ \-]?\d{4}$/; re.test(value)
preg_match('/^(?:(?:\+86|0086)[ \-]?)?1[3-9]\d[ \-]?\d{4}[ \-]?\d{4}$/', $value)
re.fullmatch(r'(?:(?:\+86|0086)[ \-]?)?1[3-9]\d[ \-]?\d{4}[ \-]?\d{4}', value)
<input type="tel" inputmode="tel" pattern="(?:(?:\+86|0086)[ \-]?)?1[3-9]\d[ \-]?\d{4}[ \-]?\d{4}">
Browsers anchor the pattern automatically.
Validation
7 of 10 numbers are valid mainland China numbers.
| Input | Result | +86 format | Regex |
|---|---|---|---|
| 138 1234 5678 | ✓ Mobile Originally China Mobile | +86 138 1234 5678 | match |
| +86 139-1234-5678 | ✓ Mobile Originally China Mobile | +86 139 1234 5678 | match |
| 0086 18612345678 | ✓ Mobile Originally China Unicom | +86 186 1234 5678 | match |
| 010-6512 3456 | ✓ Landline Area code 010 · Beijing | +86 10 6512 3456 | no match |
| +86 21 6123 4567 | ✓ Landline Area code 021 · Shanghai | +86 21 6123 4567 | no match |
| 0755 8888 6666 | ✓ Landline Area code 0755 · Shenzhen | +86 755 8888 6666 | no match |
| 400 123 4567 | ✓ 400 service number Business hotline — usually not reachable from abroad | 400 123 4567 | no match |
| 15412345678 | ✗ Mobile Prefix 154 is not an assigned mobile range. | match | |
| 1381234567 | ✗ Mobile Mobile numbers have 11 digits — this has 10. | no match | |
| +852 9123 4567 | ✗ Invalid Not a mainland China number (Hong Kong +852). | no match |
Next Tools for Chinese Websites
All free China SEO and web tools →
Chinese Mobile Number Format
Mainland Chinese mobile numbers have 11 digits and start with 1, followed by 3 to 9: 138 1234 5678. The first three digits — sometimes four — identify the operator the number was originally issued by. Internationally, the number is written +86 138 1234 5678; there is no trunk 0 to drop.
| Operator | Mobile prefixes | Other ranges |
|---|---|---|
| China Mobile | 134–139, 150–152, 157–159, 178, 182–184, 187, 188, 195, 197, 198 | 147 data · 148, 172 IoT · 165, 1703, 1705–1706 virtual |
| China Unicom | 130–132, 155, 156, 166, 175, 176, 185, 186, 196 | 145 data · 167, 171, 1704, 1707–1709 virtual |
| China Telecom | 133, 153, 173, 177, 180, 181, 189, 190, 191, 193, 199 | 149 data · 162, 1700–1702 virtual |
| China Broadnet | 192 | — |
| Satellite | — | 1349, 174x |
Two caveats for anyone validating numbers: new prefixes are released from time to time, so strict prefix lists go stale; and since nationwide number portability (携号转网) started in 2019, the prefix shows only the original operator. For sign-up forms, the simple pattern ^1[3-9]\d{9}$ plus SMS verification is the robust choice.
Chinese Landline Numbers and Area Codes
Landline numbers consist of a trunk prefix 0, an area code and a local number. The largest cities have 2-digit area codes and 8-digit numbers; elsewhere, area codes have 3 digits and local numbers 7 or 8. From abroad, drop the 0: Beijing's 010 6512 3456 becomes +86 10 6512 3456.
| City | Area code | City | Area code |
|---|---|---|---|
| Beijing | 010 | Shenzhen | 0755 |
| Shanghai | 021 | Hangzhou | 0571 |
| Guangzhou | 020 | Suzhou | 0512 |
| Tianjin | 022 | Qingdao | 0532 |
| Chongqing | 023 | Xiamen | 0592 |
| Chengdu | 028 | Dongguan | 0769 |
| Wuhan | 027 | Ningbo | 0574 |
| Nanjing | 025 | Changsha | 0731 |
| Xi'an | 029 | Zhengzhou | 0371 |
| Shenyang | 024 | Kunming | 0871 |
How to Use the Validator and Regex Builder
- Paste your numbers — from a CRM export, a lead list or a form test, one per line.
- Choose what your form should accept — mobile, landline and/or 400/800 numbers, with or without +86, with or without spaces and hyphens.
- Copy the regex for JavaScript, PHP, Python or an HTML
patternattribute. The "Regex" column shows how your pasted numbers fare against it. - Copy the clean numbers in +86 format for your CRM or database.
Phone Fields on Chinese Websites: Checklist
A contact or sign-up form that works in Europe can lose most Chinese leads. These points make forms work for Chinese visitors.
-
Make the mobile number the main field
Many Chinese users rarely check email but answer calls, SMS and WeChat. Ask for the mobile number first, and make email optional where you can.
-
Accept any formatting, then normalise
Allow spaces, hyphens and +86. Strip them on the server and store one format (+8613812345678). Don't reject a valid number because of a space.
-
Validate loosely, verify by SMS
A strict prefix list rejects new ranges until someone updates it. Use 1[3-9] plus 11 digits, and confirm ownership with an SMS code — the standard in China.
-
Watch for full-width digits
Chinese input methods can produce 138 instead of 138. Normalise full-width characters before validating. Full-width converter →
-
Offer WeChat as a contact option
Show a WeChat Official Account or WeCom contact next to the form. Many visitors prefer to start a conversation there.
-
Ask for consent under PIPL
China's Personal Information Protection Law requires a clear purpose and consent for collecting personal information such as phone numbers. Link a Chinese privacy notice next to the form.
From building and optimising lead generation for Western companies' Chinese websites since 2012.
Frequently Asked Questions
-
Mainland Chinese mobile numbers have 11 digits and start with 1, followed by 3 to 9 — for example 138 1234 5678. The first three digits show the original operator. Internationally they are written +86 138 1234 5678.
-
The simple, robust pattern is ^1[3-9]\d{9}$. It accepts all 11-digit numbers starting with 13 to 19 and rarely needs updating. A strict pattern that checks the assigned ranges catches more typos, but has to be updated when new prefixes are released. Use the builder on this page to add +86, spaces and landlines.
-
Use +86, then the number without the leading 0 of the area code: +86 138 1234 5678 for a mobile, +86 10 6512 3456 for a Beijing landline (010 in China), +86 755 8888 6666 for Shenzhen (0755). Store numbers in this format (E.164: +8613812345678) in your database.
-
Only the original operator. The prefix shows which operator the number was issued by, but since nationwide number portability (携号转网) started in 2019, a number can move to another operator and keep its prefix.
-
Big cities with a 2-digit area code — Beijing 010, Shanghai 021, Guangzhou 020, Tianjin 022, Chongqing 023 and others starting with 02 — use 8-digit local numbers. Other places have a 3-digit area code (such as 0755 for Shenzhen) and 7 or 8-digit local numbers.
-
They are business hotline numbers with 10 digits, such as 400 123 4567. With 400 numbers the caller pays a local rate, with 800 numbers the company pays. They are meant for domestic callers and are usually not reachable from abroad, so list a normal +86 number for international customers as well.
-
No — it checks mainland China numbers (+86). Hong Kong (+852), Macau (+853) and Taiwan (+886) have their own numbering plans; the validator recognises these country codes and reports them as not mainland numbers.
-
Yes, it is free and needs no sign-up. The numbers you paste are only used to show the results and are not stored or logged.
Built by Jademond Digital, a Chinese digital marketing agency founded in Guangzhou in 2012. Mobile ranges as allocated by China's MIIT, checked October 2026. About us →