Wyrażenie regularne dopasowujące standardowy 10-cyfrowy numer telefonu


125

Chcę napisać wyrażenie regularne dla standardowego numeru telefonu typu US, który obsługuje następujące formaty:

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

gdzie # oznacza dowolną liczbę. Do tej pory wymyśliłem następujące wyrażenia

^[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}

odpowiednio. Nie jestem do końca pewien, czy ostatnia z nich jest poprawna do wykropkowanej kontroli. Chciałbym również wiedzieć, czy jest jakikolwiek sposób, abym mógł napisać jedno wyrażenie zamiast 4 różnych, które obsługują różne formaty, o których wspomniałem. Jeśli tak, nie jestem pewien, jak to zrobić. A także, jak zmodyfikować wyrażenie / wyrażenia, aby można było również dołączyć warunek do obsługi numeru kierunkowego jako składnik opcjonalny. Coś jak

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

gdzie +1 to numer kierunkowy i jest opcjonalny.


5
możliwy duplikat stackoverflow.com/questions/123559/ ... sugerowaną odpowiedzią jest usunięcie każdego niecyfrowego znaku. W ten sposób upraszczasz walidację
Arnaud Denoyelle

1
Wiem, że to było jakiś czas temu, ale nie sądzę, aby numery kierunkowe w USA mogły zaczynać się od 1. (123) 456-7890 byłby nieważny z powodu wiodącego 1.
bobanahalf

Aby uzyskać pełniejszą, poprawną odpowiedź, zobacz: stackoverflow.com/a/18626090/561710
Joe Johnston

Przetwarzanie numerów telefonów jest trudne. Google wydało do tego bibliotekę open source. Pomóż sobie, użyj libphonenumber (lub widelca w swoim języku)
aloisdg przenosi się na codidact.com

Odpowiedzi:


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

Pasuje do następujących

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

Jeśli nie chcesz dopasować numerów spoza Stanów Zjednoczonych, użyj

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

Aktualizacja:
Jak zauważył użytkownik Simon Weaver poniżej, jeśli interesuje Cię również dopasowywanie niesformatowanych liczb, po prostu ustaw klasę znaku separatora jako opcjonalną, ponieważ[\s.-]?

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

1
Czy uważasz, że znak zapytania nie jest konieczny w (? \ D {3}) części Twojego pierwszego wiersza? Myślę, że potrzebujemy jednego lub więcej wystąpień, a nie zera lub jednego wystąpienia cyfry w „(” i „)”
noobcoder

2
?Nie stosuje się na nawiasie (), a nie cyframi. Kompletne powiązane wyrażenie regularne to \(?\d{3}\)?. \d{3}określa, że ​​między znakami, ()które są (uczynione) opcjonalnymi (przez ?), muszą istnieć trzy cyfry .
Ravi Thapliyal

6
uwaga: to nie pasuje do 1234567890, co może, ale nie musi, stanowić problem. dla mnie to było - więc po prostu dodałem ?po każdym, [\s.-]aby było opcjonalne
Simon_Weaver

1
@Simon_Weaver Dziękuję za wkład. Dodałem twoją obserwację do odpowiedzi.
Ravi Thapliyal

3
Jeśli chcesz taki, który pozwala uniknąć problemu wspomnianego @BobRay, użyj ^(\+\d{1,2}\s)?((\(\d{3}\))|(\d{3}))[\s.-]\d{3}[\s.-]\d{4}$. (Po prostu zduplikowałem segment RegEx, który obejmuje numer kierunkowy i pozwoliłem na jeden wariant z parenami i jeden bez)
Shrey Gupta

130

Istnieje wiele możliwych wariantów tego problemu. Oto wyrażenie regularne podobne do odpowiedzi, którą wcześniej umieściłem na SO.

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

Pasowałoby do poniższych przykładów i nie tylko:

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

Niezależnie od sposobu wprowadzenia numeru telefonu, grupy przechwytywania mogą służyć do podziału numeru telefonu, aby można go było przetworzyć w swoim kodzie.

  • Grupa 1: kod kraju (np. 1 lub 86)
  • Grupa 2: numer kierunkowy (np .: 800)
  • Group3: Exchange (np .: 555)
  • Grupa 4: numer abonenta (np .: 1234)
  • Grupa 5: Rozszerzenie (np .: 5678)

Oto podział wyrażenia, jeśli jesteś zainteresowany:

^\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.

Aby numer kierunkowy był opcjonalny, po prostu dodaj znak zapytania po (\ d {3}) dla numeru kierunkowego.


8
najlepsza odpowiedź IMHO. W moim przypadku \snie są potrzebne na początku i na końcu, ponieważ używam do walidacji, a pole jest już przycięte.
Daniel

2
Zdecydowanie najlepsza odpowiedź i najbardziej kompletna. Naprawdę doceniam też podział wyrażeń regularnych.
Bryant Jackson

@Kondal Ciekawi mnie wejście, którego używasz, aby to się nie udało. Wydaje mi się, że działa dobrze z 0 dla kodu kraju.
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 * $ "tylko -numbers ng-maxlength = "10" />
Kondal

@Kondal Przepraszamy. Miałem na myśli tekst, który próbujesz dopasować, ale nie działa z tym wyrażeniem regularnym.
Francis Gagnon

8

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

Pasuje do tych numerów telefonów:

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

Zobacz regex101.com


7

Oto dość kompaktowy, który stworzyłem.

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

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

Przetestowano w następujących przypadkach użycia.

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

To pasuje do rzeczy takich jak (800 444-4444
Jake,

6

Dodanie przykładu wykorzystującego powyższe rozwiązania na jsfiddle. Zmodyfikowałem nieco kod zgodnie z wymaganiami moich klientów. Mam nadzieję, że to też komuś pomoże.

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

Zobacz przykład tutaj


4

spróbuj tego dla użytkowników z Pakistanu. Oto dość kompaktowy, który stworzyłem.

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

Przetestowano w następujących przypadkach użycia.

+92 -345 -123 -4567
+92 333 123 4567
+92 300 123 4567
+92 321 123 -4567
+92 345 - 540 - 5883

4

Numer telefonu, którego używam: /^[+]?(\d{1,2})?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/

Okładki:

  • 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

2

Wyrażenia dla 1, 3 i 4 są dość podobne, więc możesz użyć:

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

Zwróć uwagę, że w zależności od używanego języka i marki wyrażeń regularnych może być konieczne wstawienie \2zamiast $2lub takie dopasowanie może w ogóle nie być obsługiwane.

Nie widzę dobrego sposobu na połączenie tego z formatem 2, poza oczywistością ^(regex for 1,3,4|regex for 2)$ który jest brzydki, niezdarny i sprawia, że ​​trudno jest wydobyć części liczb.

Jeśli chodzi o numer kierunkowy, możesz dodać (\+\d)?na początku, aby uchwycić jednocyfrowy numer kierunkowy (przepraszam, nie znam formatu twoich numerów kierunkowych).


2

Co powiesz na to?

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

EDYCJA: zapomniałem o () jednym. EDYCJA 2: Nieprawidłowa pierwsza 3-cyfrowa część.


Nie ma potrzeby ucieczki kropki .w klasie znaków, więc [-\.\s]właściwie powinno być [-.\s], ponieważ nie chcemy dopasowywać odwrotnego ukośnika.
Vedran Šego

Czy faktycznie pasowałby do odwrotnego ukośnika? Myślałem, że to może nie być konieczne, ale nie byłem na 100% pewien.
crimson_penguin

Masz rację. Właśnie go wypróbowałem (nigdy wcześniej nie potrzebowałem odwrotnego ukośnika) [\.]i [.]oba pasują tylko do kropki, podczas gdy [\\.]dopasowują zarówno kropkę, jak i lewy ukośnik. Dziękuję za uwagę.
Vedran Šego

Moja opinia na temat wyrażeń regularnych jest taka, że ​​jeśli podajesz komuś wyrażenie regularne, zawsze dołączaj do niego wyjaśnienie, w przeciwnym razie wyrażenie regularne jest bezwartościowe. Tylko moja opinia.
John Red,

2

Zaczynając od odpowiedzi @ Ravi, zastosowałem również pewne zasady walidacji dla kodu NPA (obszaru) .

W szczególności:

  • Powinien zaczynać się od 2 (lub więcej)
  • Nie może mieć „11” jako drugiej i trzeciej cyfry (N11).

Istnieje kilka innych ograniczeń, w tym zarezerwowane bloki (N9X, 37X, 96X) i 555, ale je pominąłem, szczególnie dlatego, że zarezerwowane bloki mogą być używane w przyszłości, a 555 jest przydatne do testowania.

Oto co wymyśliłem:

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

Alternatywnie, jeśli chcesz dopasować również puste wartości (jeśli pole nie jest wymagane), możesz użyć:

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

Moje przypadki testowe dla prawidłowych liczb (wiele z odpowiedzi @Francis) to:

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

Moje nieprawidłowe przypadki testowe obejmują:

(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 +

Moje wyrażenie regularne nie obejmuje grupowania w celu wyodrębnienia grup cyfr, ale można je zmodyfikować, aby je uwzględnić.


2

Być może najłatwiejszy w porównaniu z kilkoma innymi.

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

Pasuje do następujących:

(555) 444-6789

555-444-6789

555.444.6789

555 444 6789


Idealny ... Dzięki (y)
Sushil Sharma

2

Ten kod będzie pasował do numeru telefonu w Stanach Zjednoczonych lub Kanadzie, a także zapewni, że jest to prawidłowy numer kierunkowy i wymiana:

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

Przetestuj na Regex101.com


2

Wzór Regex do weryfikacji zwykłego 10-cyfrowego numeru telefonu oraz opcjonalnego kodu międzynarodowego (od 1 do 3 cyfr) i opcjonalnego numeru wewnętrznego (dowolna liczba cyfr):

/(\+\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

Ważne wpisy:

/* 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

1

Uważam, że to wyrażenie regularne jest dla mnie najbardziej przydatne w przypadku 10-cyfrowego numeru kontaktowego:

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

Źródła : https://regex101.com/r/QeQewP/1

Wyjaśnienie:

wprowadź opis obrazu tutaj


Czy użyłeś narzędzia do wygenerowania tego wyjaśnienia? Udostępnij! Dzięki
nieznane

@unnknown Wygląda jak zrzut ekranu z internetowego narzędzia do sprawdzania wyrażeń regularnych, na przykład regex101.com. Należy zauważyć, że wytyczne SO stanowią, że cały tekst, kod, dane i komunikaty o błędach muszą być wprowadzane w formie tekstowej, a nie obrazów, ponieważ tekst na obrazach może być trudny do odczytania, szczególnie na urządzeniach mobilnych i wiąże się z większą przepustowością. Nie można również kopiować i wklejać tekstu. W takim przypadku kolory mogą coś dodać, nie jestem pewien. Wiedz, że generalnie „Odpowiedzi” powinny zawierać wyjaśnienie tekstowe. Amitesh: warto byłoby dołączyć link do tej witryny, w której Twoje wyrażenie regularne jest już wypełnione, aby użytkownicy mogli z nim eksperymentować.
SherylHohman

@unnknown tutaj to link, który tworzy obraz podobny do tego w tym poście. Ciąg wyrażenia regularnego Amitesha został już wklejony. Możesz wprowadzić numery telefonów, aby sprawdzić jego wyniki: regex101.com/r/QeQewP/1
SherylHohman


0

Jest to bardziej wszechstronna wersja, która będzie pasować tak bardzo, jak tylko mogę wymyślić, a także zapewni dopasowanie grupowe według kraju, regionu, pierwszej i ostatniej.

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

0

a co z wieloma liczbami oznaczonymi „+” i oddzielonymi „;” Znaki „,” „-” lub „”?


0

Skończyło się

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

miało to na przykład pozwolić na takie rzeczy jak holenderskie numery

+358300 20200


0

Powyższe wyrażenie regularne to niewielka modyfikacja @Francis Gagnon.

Cel: aby wykryć wszelkie możliwe wzorce, użytkownik może udostępnić swój numer telefonu w USA


Wersja 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*$

Przetestuj tutaj Codepen: https://codepen.io/kiranbhattarai/pen/NWKMXQO

Wyjaśnienie wyrażenia regularnego: https://regexr.com/4kt5j


Wersja 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*$

Co w nim jest: Przypadki testowe mogą być częścią ciągu. W wersji pierwszej przypadki testowe powinny być początkiem linii do pracy.

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

Wyjaśnienie wyrażenia regularnego: https://regexr.com/4kt9n


Jeśli znajdziesz wzór, który może zawieść, napisz komentarz, naprawię to.

Przypadki testowe: zaliczone

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

+86, +99 itd. Zdecydowanie nie są numerami telefonów w USA. Kilka innych przypadków testowych wygląda na wątpliwych z innych powodów.
tripleee

@tripleee pozwól mi to naprawić, zaktualizowałem go do dowolnego kraju, mam nadzieję, że działa. Dodatkowo usunąłem również zduplikowane przypadki testowe
Kiran Bhattarai

0

Po prostu wrzucam tam tę odpowiedź, ponieważ rozwiązuje ona mój problem, jest oparta na odpowiedzi @ stormy, ale zawiera 3-cyfrowe kody krajów i, co ważniejsze, może być używany w dowolnym miejscu w ciągu, ale nie pasuje, czy tak nie jest poprzedzona spacją / początkiem ciągu i zakończona granicą słowa. Jest to przydatne, aby nie dopasować losowych liczb w środku adresu URL lub czegoś takiego

((?:\s|^)(?:\+\d{1,3}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4})(?:\b)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.