Persamaan reguler untuk mencocokkan standar 10 digit nomor telepon

125

Saya ingin menulis ekspresi reguler untuk nomor telepon jenis AS standar yang mendukung format berikut:

###-###-####
(###) ###-####
### ### ####
###.###.####

dimana # berarti angka apapun. Sejauh ini saya muncul dengan ekspresi berikut

^[1-9]\d{2}-\d{3}-\d{4}
^\(\d{3}\)\s\d{3}-\d{4}
^[1-9]\d{2}\s\d{3}\s\d{4}
^[1-9]\d{2}\.\d{3}\.\d{4}

masing-masing. Saya tidak begitu yakin apakah yang terakhir benar untuk cek bertitik. Saya juga ingin tahu apakah ada cara untuk menulis satu ekspresi alih-alih 4 ekspresi berbeda yang memenuhi format berbeda yang saya sebutkan. Jika demikian, saya tidak yakin bagaimana cara melakukannya. Dan juga bagaimana cara mengubah ekspresi / ekspresi sehingga saya juga bisa menyertakan kondisi untuk mendukung kode area sebagai komponen opsional. Sesuatu seperti

+1 ### ### ####

dengan +1 adalah kode area dan opsional.

noobcoder
sumber
5
kemungkinan duplikat stackoverflow.com/questions/123559/… jawaban yang disarankan adalah menghapus setiap karakter non-digit. Dengan cara ini, Anda menyederhanakan validasi
Arnaud Denoyelle
1
Saya tahu ini beberapa waktu yang lalu, tetapi saya rasa kode area AS tidak dapat dimulai dengan 1. (123) 456-7890 akan menjadi tidak valid karena di depan 1.
bobanahalf
Untuk jawaban benar yang lebih lengkap lihat: stackoverflow.com/a/18626090/561710
Joe Johnston
Sulit mengurai nomor telepon. Google merilis lib open source untuk ini. Bantu diri Anda sendiri, gunakan libphonenumber (atau percabangan dalam bahasa Anda)
aloisdg pindah ke codidact.com

Jawaban:

212
^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

Cocok dengan berikut ini

123-456-7890
(123) 456-7890
123 456 7890
123.456.7890
+91 (123) 456-7890

Jika Anda tidak ingin mencocokkan nomor non-AS gunakan

^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

Pembaruan:
Seperti yang diperhatikan oleh pengguna Simon Weaver di bawah ini, jika Anda juga tertarik untuk mencocokkan nomor yang tidak diformat, buat saja kelas karakter pemisah opsional sebagai[\s.-]?

^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$
Ravi Thapliyal
sumber
1
Menurut Anda, apakah tanda tanya tidak perlu di (? \ D {3}) di baris pertama Anda? Saya pikir kita memang membutuhkan satu atau lebih kemunculan dan bukan nol atau satu kemunculan digit dalam '(' dan ')'
noobcoder
2
Di ?sana berlaku pada tanda kurung (), bukan pada angka. Regex terkait lengkap adalah \(?\d{3}\)?. \d{3}menentukan bahwa harus ada tiga digit di antara ()yang (dibuat) opsional (oleh ?).
Ravi Thapliyal
6
catatan: ini tidak cocok dengan 1234567890 yang mungkin menjadi masalah atau tidak. bagi saya itu - jadi saya hanya menambahkan ?setelah masing [\s.-]- masing untuk menjadikannya opsional
Simon_Weaver
1
@Simon_Weaver Terima kasih atas masukannya. Saya telah menambahkan pengamatan Anda ke jawabannya.
Ravi Thapliyal
3
Jika Anda menginginkan salah satu yang menghindari masalah @BobRay disebutkan, gunakan ^(\+\d{1,2}\s)?((\(\d{3}\))|(\d{3}))[\s.-]\d{3}[\s.-]\d{4}$. (Saya pada dasarnya hanya menduplikasi segmen RegEx yang mencakup kode area dan mengizinkan satu varian dengan parens dan satu tanpa)
Shrey Gupta
129

Ada banyak variasi yang mungkin untuk masalah ini. Berikut adalah ekspresi reguler yang mirip dengan jawaban yang saya tempatkan sebelumnya di SO.

^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$

Ini akan cocok dengan contoh berikut dan banyak lagi:

18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
800 555 1234x5678
8005551234 x5678
1    800    555-1234
1----800----555-1234

Terlepas dari cara memasukkan nomor telepon, grup penangkapan dapat digunakan untuk menguraikan nomor telepon sehingga Anda dapat memprosesnya dalam kode Anda.

  • Grup1: Kode Negara (mis .: 1 atau 86)
  • Grup2: Kode Area (misal: 800)
  • Group3: Exchange (mis .: 555)
  • Grup4: Nomor Pelanggan (mis .: 1234)
  • Group5: Extension (mis .: 5678)

Berikut ini rincian ekspresi jika Anda tertarik:

^\s*                #Line start, match any whitespaces at the beginning if any.
(?:\+?(\d{1,3}))?   #GROUP 1: The country code. Optional.
[-. (]*             #Allow certain non numeric characters that may appear between the Country Code and the Area Code.
(\d{3})             #GROUP 2: The Area Code. Required.
[-. )]*             #Allow certain non numeric characters that may appear between the Area Code and the Exchange number.
(\d{3})             #GROUP 3: The Exchange number. Required.
[-. ]*              #Allow certain non numeric characters that may appear between the Exchange number and the Subscriber number.
(\d{4})             #Group 4: The Subscriber Number. Required.
(?: *x(\d+))?       #Group 5: The Extension number. Optional.
\s*$                #Match any ending whitespaces if any and the end of string.

Untuk menjadikan Kode Area opsional, cukup tambahkan tanda tanya setelah (\ d {3}) untuk kode area.

Francis Gagnon
sumber
8
jawaban terbaik IMHO. Untuk keperluan saya, \sawal dan akhir tidak diperlukan, karena saya menggunakan untuk validasi, dan field sudah dipangkas.
Daniel
2
Sejauh ini jawaban terbaik dan terlengkap. Saya juga sangat menghargai kerusakan regex.
Bryant Jackson
@Kondal Saya ingin tahu tentang masukan yang Anda gunakan untuk membuatnya gagal. Tampaknya berfungsi dengan baik untuk saya dengan 0 untuk kode negara.
Francis Gagnon
<input type = "text" name = "phone_no" class = "form-control" ng-pattern = "^ \ s * (?: \ +? (\ d {1,3}))? [-. (] * (\ d {3}) [-.)] * (\ d {3}) [-.] * (\ d {4}) (?: * x (\ d +))? \ s * $ "saja -numbers ng-maxlength = "10" />
Kondal
@Maaf. Maksud saya teks yang Anda coba cocokkan yang gagal dengan ekspresi reguler ini.
Francis Gagnon
8

^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

Cocok dengan nomor telepon ini:

1-718-444-1122
718-444-1122
(718)-444-1122
17184441122
7184441122
718.444.1122
1718.444.1122
1-123-456-7890
1 123-456-7890
1 (123) 456-7890
1 123 456 7890
1.123.456.7890
+91 (123) 456-7890
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
+1 (800) 123-4567
18001234567
1 800 123 4567
+1 800 123-4567
+86 800 123 4567
1-800-123-4567
1 (800) 123-4567
(800)123-4567
(800) 123-4567
(800)1234567
800-123-4567
800.123.4567
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123)123 1231
(123) 123-1231
(123) 123 1231
+99 1234567890
+991234567890
(555) 444-6789
555-444-6789
555.444.6789
555 444 6789
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
(003) 555-1212
(103) 555-1212
(911) 555-1212
18005551234
1 800 555 1234
+86 800-555-1234
1 (800) 555-1234

Lihat regex101.com

stomy
sumber
7

Ini yang cukup kompak yang saya buat.

Search: \+?1?\s*\(?-*\.*(\d{3})\)?\.*-*\s*(\d{3})\.*-*\s*(\d{4})$

Replace: +1 \($1\) $2-$3

Diuji terhadap kasus penggunaan berikut.

18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
1--800--123--4567
+1 (800) 123-4567
Puneet Lamba
sumber
Ini cocok dengan hal-hal seperti (800 444-4444
Jake
6

Menambahkan contoh menggunakan solusi yang disebutkan di atas di jsfiddle. Saya telah mengubah kode sedikit sesuai kebutuhan klien saya. Semoga ini juga membantu seseorang.

/^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$/

Lihat Contoh Di Sini

Avinash Lad
sumber
4

coba ini untuk pengguna Pakistan. Ini yang cukup ringkas yang saya buat.

((\+92)|0)[.\- ]?[0-9][.\- ]?[0-9][.\- ]?[0-9]

Diuji terhadap kasus penggunaan berikut.

+92 -345 -123 -4567
+92 333 123 4567
+92 300 123 4567
+92 321 123 -4567
+92 345 - 540 - 5883
sajid
sumber
4

Nomor telepon regex yang saya gunakan: /^[+]?(\d{1,2})?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/

Meliputi:

  • 18001234567
  • 1 800 123 4567
  • +1 800 123-4567
  • +86 800 123 4567
  • 1-800-123-4567
  • 1 (800) 123-4567
  • (800)123-4567
  • (800) 123-4567
  • (800) 1234567
  • 800-123-4567
  • 800.123.4567
Yevhen Kotliar
sumber
2

Ekspresi untuk 1, 3 dan 4 sangat mirip, jadi Anda dapat menggunakan:

^([1-9]\d{2})([- .])(\d{3})$2(\d{4})$

Perhatikan bahwa, tergantung pada bahasa dan merek ekspresi reguler yang digunakan, Anda mungkin perlu meletakkan \2alih-alih $2atau pencocokan semacam itu mungkin tidak didukung sama sekali.

Saya tidak melihat cara yang baik untuk menggabungkan ini dengan format 2, selain dari yang sudah jelas ^(regex for 1,3,4|regex for 2)$mana yang jelek, kikuk dan menyulitkan untuk mengeluarkan bagian-bagian angka.

Sedangkan untuk kode areanya bisa anda tambahkan (\+\d)?di awal untuk menangkap satu digit kode area (maaf saya tidak tahu format kode areanya).

Vedran Šego
sumber
2

Bagaimana dengan ini?

^(\+?[01])?[-.\s]?\(?[1-9]\d{2}\)?[-.\s]?\d{3}[-.\s]?\d{4}

EDIT: Saya lupa tentang () satu. EDIT 2: Salah bagian 3 digit pertama.

crimson_penguin
sumber
Tidak perlu menghilangkan titik .saat berada di kelas karakter, jadi [-\.\s]seharusnya begitu [-.\s], karena kita tidak ingin mencocokkan garis miring terbalik.
Vedran Šego
Apakah itu benar-benar cocok dengan garis miring terbalik? Saya pikir itu mungkin tidak perlu, tetapi saya tidak yakin 100%.
crimson_penguin
Kamu benar. Saya baru saja mencobanya (saya tidak pernah membutuhkan garis miring terbalik sebelumnya) [\.]dan [.]keduanya hanya cocok dengan titik, sementara [\\.]cocok dengan titik dan garis miring terbalik. Terima kasih atas tanggapan Anda.
Vedran Šego
Pendapat saya tentang regex adalah, jika Anda memberikan regex kepada seseorang, selalu sertakan dengan penjelasan, atau regex itu tidak berharga. Hanya pendapat saya.
John Red
2

Dimulai dengan jawaban @ Ravi, saya juga menerapkan beberapa aturan validasi untuk Kode NPA (Area) .

Khususnya:

  • Ini harus dimulai dengan 2 (atau lebih tinggi)
  • Tidak boleh memiliki "11" sebagai digit kedua dan ketiga (N11).

Ada beberapa batasan lain, termasuk blok yang dicadangkan (N9X, 37X, 96X) dan 555, tetapi saya mengabaikannya, terutama karena blok yang dicadangkan mungkin akan digunakan di masa mendatang, dan 555 berguna untuk pengujian.

Inilah yang saya dapatkan:

^((\+\d{1,2}|1)[\s.-]?)?\(?[2-9](?!11)\d{2}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

Bergantian, jika Anda juga ingin mencocokkan nilai kosong (jika bidang tidak diperlukan), Anda dapat menggunakan:

(^((\+\d{1,2}|1)[\s.-]?)?\(?[2-9](?!11)\d{2}\)?[\s.-]?\d{3}[\s.-]?\d{4}$|^$)

Kasus uji saya untuk nomor yang valid (banyak dari jawaban @Francis ') adalah:

18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234

Kasus uji saya yang tidak valid meliputi:

(003) 555-1212     // Area code starts with 0
(103) 555-1212     // Area code starts with 1
(911) 555-1212     // Area code ends with 11
180055512345       // Too many digits
1 800 5555 1234    // Prefix code too long
+1 800 555x1234    // Invalid delimiter
+867 800 555 1234  // Country code too long
1-800-555-1234p    // Invalid character
1 (800)  555-1234  // Too many spaces
800x555x1234       // Invalid delimiter
86 800 555 1212    // Non-NA country code doesn't have +

Ekspresi reguler saya tidak menyertakan pengelompokan untuk mengekstrak grup digit, tetapi dapat dimodifikasi untuk menyertakannya.

MCattle
sumber
2

Mungkin yang paling mudah dibandingkan dengan beberapa lainnya.

\(?\d+\)?[-.\s]?\d+[-.\s]?\d+

Ini cocok dengan yang berikut:

(555) 444-6789

555-444-6789

555.444.6789

555444 6789

MITHU
sumber
Sempurna ... Terima kasih (y)
Sushil Sharma
2

Kode ini akan cocok dengan nomor telepon AS atau Kanada, dan juga akan memastikan bahwa itu adalah kode area dan pertukaran yang valid:

^((\+1)?[\s-]?)?\(?[2-9]\d\d\)?[\s-]?[2-9]\d\d[\s-]?\d\d\d\d

Uji di Regex101.com

Shino
sumber
2

Regex patter untuk memvalidasi 10 digit nomor telepon biasa ditambah kode internasional opsional (1 hingga 3 digit) dan nomor ekstensi opsional (sejumlah digit):

/(\+\d{1,3}\s?)?((\(\d{3}\)\s?)|(\d{3})(\s|-?))(\d{3}(\s|-?))(\d{4})(\s?(([E|e]xt[:|.|]?)|x|X)(\s?\d+))?/g

Demo: https://www.regextester.com/103299

Entri yang valid:

/* Full number */
+999 (999) 999-9999 Ext. 99999

/* Regular local phone number (XXX) XXX-XXXX */
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123)123 1231
(123) 123-1231
(123) 123 1231

/* International codes +XXX (XXX) XXX-XXXX */
+99 1234567890
+991234567890

/* Extensions (XXX) XXX-XXXX Ext. XXX... */
1234567890 Ext 1123123
1234567890Ext 1123123
1234567890 Ext1123123
1234567890Ext1123123

1234567890 Ext: 1123123
1234567890Ext: 1123123
1234567890 Ext:1123123
1234567890Ext:1123123

1234567890 Ext. 1123123
1234567890Ext. 1123123
1234567890 Ext.1123123
1234567890Ext.1123123

1234567890 ext 1123123
1234567890ext 1123123
1234567890 ext1123123
1234567890ext1123123

1234567890 ext: 1123123
1234567890ext: 1123123
1234567890 ext:1123123
1234567890ext:1123123

1234567890 X 1123123
1234567890X1123123
1234567890X 1123123
1234567890 X1123123
1234567890 x 1123123
1234567890x1123123
1234567890 x1123123
1234567890x 1123123
bcngr.dll
sumber
1

Bagi saya ekspresi reguler ini paling berguna untuk 10 digit nomor kontak:

^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$

Referensi : https://regex101.com/r/QeQewP/1

Penjelasan:

masukkan deskripsi gambar di sini

Amitesh Bharti
sumber
Apakah Anda menggunakan alat untuk menghasilkan penjelasan itu? Berbagilah! Terima kasih
diketahui
@unnknown Sepertinya tangkapan layar dari pemeriksa regex online, seperti regex101.com. Perhatikan bahwa pedoman SO menyatakan bahwa semua teks, kode, data, dan pesan kesalahan harus dimasukkan dalam bentuk teks, bukan gambar, karena teks dalam gambar bisa sulit dibaca, terutama pada perangkat seluler, dan memerlukan bandwidth yang lebih besar. Juga teks tidak dapat disalin-tempel. Dalam hal ini, warna mungkin menambahkan sesuatu, tidak yakin. Ketahuilah bahwa secara umum, "Jawaban" harus menyertakan penjelasan tekstual. Amitesh: akan berguna untuk menyertakan tautan ke situs ini, dengan ekspresi reguler Anda sudah terisi bagi pengunjung untuk bereksperimen.
SherylHohman
@unnknown di sini adalah tautan yang menghasilkan gambar mirip dengan yang ada di posting ini. String regex Amitesh telah ditempelkan. Anda dapat memasukkan nomor telepon untuk menguji hasilnya: regex101.com/r/QeQewP/1
SherylHohman
0
^(\+1)?\s?(\([1-9]\d{2}\)|[1-9]\d{2})(-|\s|.)\d{3}(-|\s|.)\d{4}
menggabungkan
sumber
0

Ini adalah versi yang lebih komprehensif yang akan cocok sebanyak yang saya pikirkan serta memberi Anda pencocokan grup untuk negara, wilayah, pertama, dan terakhir.

(?<number>(\+?(?<country>(\d{1,3}))(\s|-|\.)?)?(\(?(?<region>(\d{3}))\)?(\s|-|\.)?)((?<first>(\d{3}))(\s|-|\.)?)((?<last>(\d{4}))))
jake
sumber
0

bagaimana dengan beberapa angka dengan "+" dan pisahkan dengan ";" Karakter "," "-" atau ""?

radeveloper
sumber
0

Saya berakhir dengan

const regexBase = '(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})?[-. )]*(\\d{3})[-. ]*(\\d{4,5})(?: *x(\\d+))?'; const phoneRegex = new RegExp('\\s*' + regexBase + '\\s*', 'g');

ini untuk memungkinkan hal-hal seperti angka belanda, misalnya

+358 300 20200

Kelly Milligan
sumber
0

Regex di atas adalah sedikit modifikasi dari @Francis Gagnon.

Tujuan: Untuk mendeteksi pola yang mungkin, pengguna dapat membagikan nomor telepon AS mereka


Versi 1:

^\s*(?:\+?(\d{1,3}))?[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d[\W\D\s]*?\d)(?: *x(\d+))?\s*$

Uji di sini Codepen: https://codepen.io/kiranbhattarai/pen/NWKMXQO

Penjelasan regex: https://regexr.com/4kt5j


Versi 2:

\s*(?:\+?(\d{1,3}))?[\W\D\s]^|()*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d[\W\D\s]*?\d)(?: *x(\d+))?\s*$

Apa isinya: Kasus uji dapat menjadi bagian dari string. Dalam versi satu kasus pengujian harus menjadi awal dari sebuah baris untuk bekerja.

Kode: https://codepen.io/kiranbhattarai/pen/GRKGNGG

Penjelasan regex: https://regexr.com/4kt9n


Jika Anda dapat menemukan pola yang bisa gagal, silakan lakukan komentar saya akan memperbaikinya.

Kasus Uji: Lulus

8 0   0  4  4  4  5   55 5
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
800 555 1234x5678
8005551234 x5678
1    800    555-1234
1----800----555-1234
800 (555) 1234
800(555)1234
8 0 0 5 5 5 1 2 3 4
8.0.0.5.5.5.1.2.3.4
8-0-0-5-5-5-1-2-3-4
(8)005551234
(80)05551234
8(00)5551234
8@0@0@5551234
8/0/0/5/5/5/1/2/3/4
8*0*0*5*5*5*1*2*3*4
8:0:0:5:5:5:1:2:3:4
8,0,0,5,5,5,1,2,3,4
800,555,1234
800:555:1234
1-718-444-1122
718-444-1122
(718)-444-1122
17184441122
7184441122
718.444.1122
1718.444.1122
1-123-456-7890
1 123-456-7890
1 (123) 456-7890
1 123 456 7890
1.123.456.7890
+91 (123) 456-7890
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
+1 (800) 123-4567
18001234567
1 800 123 4567
+1 800 123-4567
+86 800 123 4567
1-800-123-4567
1 (800) 123-4567
(800)123-4567
(800) 123-4567
(800)1234567
800-123-4567
800.123.4567
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123) 123-1231
(123) 123 1231
+99 1234567890
+991234567890
(555) 444-6789
555-444-6789
555.444.6789
555 444 6789
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
(003) 555-1212
(103) 555-1212
(911) 555-1212
18005551234
1 800 555 1234
+86 800-555-1234
1 (800) 555-1234
Kiran Bhattarai
sumber
+86, +99 dll jelas bukan nomor telepon AS. Beberapa kasus pengujian Anda yang lain tampak meragukan karena alasan lain.
tripleee
@tripleee biarkan saya memperbaikinya, saya telah memperbaruinya ke negara mana pun yang saya harap berhasil. Selain itu, saya juga menghapus kasus uji duplikat
Kiran Bhattarai
0

Saya hanya melempar jawaban ini ke sana karena ini memecahkan masalah saya, ini didasarkan pada jawaban @ stormy, tetapi menyertakan kode negara 3 digit dan yang lebih penting dapat digunakan di mana saja dalam string, tetapi tidak akan cocok bukan diawali dengan spasi / awal string dan diakhiri dengan batas kata. Ini berguna agar tidak cocok dengan nomor acak di tengah URL atau sesuatu

((?:\s|^)(?:\+\d{1,3}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4})(?:\b)
hobberwickey
sumber