RegEx - numer telefonu

RegEx - numer telefonu
SC
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 7 lat
  • Postów:7
0

cześć,

mam taki fragment kodu:

Kopiuj
let val = value.replace(/[^\d]/g, "+48{1}");

jak powinno wyglądać wyrażenie regularne, żeby wartość zawsze zawierała +48 i można było wpisać tylko 9 cyfr

z góry dziękuję za podpowiedź :)

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
1

\+48\d{9} ;-)

Przy okazji - do sprawdzania wyrażeń regularnych polecam np. https://regex101.com/


Silv
No właśnie też chciałem tę stronę zarekomendować. ;) Coś się zepsuło z debuggex.com, a tamto wydawało mi się lepiej dla mnie sformatowane. :/
Silv
Tylko uwaga, ten regex nie sprawdza, czy numer nie ma więcej niż 9 cyfr.
Patryk27
Ach, good point - zapomniałem o ^ oraz $.
Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
1

Jako uzupełnienie postu @Patryk27, dla numeru telefonu w formacie +48XXXXXXXXX zrobiłbym takie wyrażenie regularne, które sprawdza, czy numer ma jedynie 9 cyfr (ani więcej, ani mniej), a także, czy przed nim ani po nim nie ma żadnych znaków:

Kopiuj
/^\+48\d{9}$/

edytowany 1x, ostatnio: Silv
Maciej Cąderek
Maciej Cąderek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Warszawa
  • Postów:1264
1

Wymuszanie na użytkowniku konkretnego formatu nie jest imo najlepszym rozwiązaniem pod względem UX, lepiej dać kierunkowy na stałe / dać jako listę wyboru, a numer pozwolić zapisać w dowolnym sensownym formacie formacie, coś w stylu:

https://codepen.io/caderek/pen/vjWzvo?editors=1010

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.