Regex untuk Nomor Telepon AS

Gunakan /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ untuk memeriksa apakah seluruh string merupakan nomor telepon AS yang valid. Setiap contoh di bawah sudah diuji terhadap pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/
Buka di Regex Tester
InputHasilGrup
(212) 555-0123✓ Cocok212 555 0123
212-555-0123✓ Cocok212 555 0123
+1 415.555.0199✓ Cocok415 555 0199
4155550199✓ Cocok415 555 0199
123-456-7890✗ Tidak cocok
555-1234✗ Tidak cocok
(212) 555-01234✗ Tidak cocok
+44 20 7183 8750✗ Tidak cocok

Cara kerja pola

BagianArti
(?:\+1[-. ]?)?Kode negara +1 (opsional), diikuti pemisah (opsional)
\(?([2-9]\d{2})\)?Kode area (grup 1), boleh diapit tanda kurung; tidak boleh diawali 0 atau 1
[-. ]?Tanda hubung, titik, atau spasi (opsional)
(\d{3})Kode pertukaran (grup 2)
(\d{4})Nomor saluran (grup 3)

Contoh kode

JavaScript

const re = /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})', value))

PHP

preg_match('/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/', $value) === 1;

Catatan dan batasan

Ketiga grup memungkinkan kamu menormalkan format apa pun yang diterima, misalnya menjadi ($1) $2-$3. Untuk nomor internasional, simpan dalam format E.164 dan gunakan library seperti libphonenumber untuk validasi yang sesungguhnya.

Pertanyaan yang sering diajukan

Apa regex untuk nomor telepon AS?
/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ — pola ini mencocokkan seluruh string. Lihat tabel di atas untuk fungsi setiap bagiannya.
Contoh mana yang cocok?
Dari contoh yang diuji, yang cocok adalah: (212) 555-0123, 212-555-0123, +1 415.555.0199, 4155550199. Yang lain tidak cocok.
Bagaimana cara menguji regex ini?
Klik “Buka di Regex Tester” — pola, flag, dan teks contoh akan dimuat otomatis, dan kecocokan akan disorot saat kamu mengedit.