Hirdetés
- Xiaomi 15T Pro - a téma nincs lezárva
- Google Pixel 9 Pro XL - hét szűk esztendő
- iPhone topik
- Samsung Galaxy S25 - végre van kicsi!
- Pebble - az átgondolt okosóra
- Xiaomi 17 Ultra - jó az optikája
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Nem lesz olcsó a Realme GT 8 Pro Európában
- 8000 nit, maradhat? A szaúdiaknál kezd a Honor 600 Pro
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
-
Mobilarena

Új hozzászólás Aktív témák
-
bLaCkDoGoNe
veterán
Szuper, köszi.

A freeCodeCamp-en a Javascript blokkot csinálom, és az egyik projekt feladat az, hogy kell írni egy telefonszám formátum ellenőrző függvényt, ami a megadott számsorozatot adott szempontok szerint validálja, és visszaköp egy boolean-t eredményül.
Elsőre úgy gondoltam, hogy ezt regex-szel lenne a legegyszerűbb megoldani, úgy, hogy egy viszonylag komplex kifejezéssel ellenőrizném az összes szükséges szempontot, de két napja szuggerálom a megírt regex-emet, mert két teszteset elbukik rajta, és egyszerűen nem látom, hogy hol megy félre. A legvalószínűbb persze, hogy mivel most tanulom a dolgot, hülyeséget csináltam valahol, bár a regex101.com-on végigzavarva olyan nagy marhaságot elsőre nem találtam benne, lehet hogy egyszerűen valahol rosszul tagoltam valamit például, ami működik így is, csak nem a szándékaim szerint.
A regex, amit összeraktam, így néz ki:
/(^(1))?(\s)?((\([0-9]{3}\))*|\d{3})(\s|[-])?(\d{3})(\s|[-])?(\b\d{4})/
és szándékaim szerint az alábbiakat ellenőrizné:
- opcionálisan 1-essel kezdődik-e a szám
- az egyes után opcionálisan whitespace
- van egy három számot tartalmazó blokk zárójelek között VAGY zárójelek nélkül
- ezt követően opcionális whitespace vagy kötőjel
- ezt követően három számot tartalmazó blokk
- ezt követően opcionális whitespace vagy kötőjel
- végül egy négy számot tartalmazó blokk.Ez a két testcase nem az elvárt eredményt adja vissza:
telephoneCheck("5555555555") should return true.
telephoneCheck("555-5555") should return false.Tudnátok valami iránymutatást adni, hogy hol van a hiba abban, amit csináltam? Vagy eleve lehetetlen az összes teszt esetet egy regex-szel lekezelni, és egy többszintű, elágazó szűrést kellene csinálnom több kifejezéssel?
Köszi a segítséget.

Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- GIGABYTE RX 6800 XT 16GB GDDR6 GAMING OC - Eladó!
- BESZÁMÍTÁS! ASRock A520M R5 5500 16GB DDR4 500GB SSD RX 5700XT 8GB Rampage SHIVA Seasonic 650W
- BESZÁMÍTÁS! MSI B450M R5 5600 16GB DDR4 512GB SSD RX 6650 XT 8GB Rampage SHIVA FSP 650W
- BESZÁMÍTÁS! ASUS B450M R7 5700 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Cooler Master 650W
- BESZÁMÍTÁS! AsRock H510M i5 11500 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Adata 600W
- Spigen Essential Ee673eu 3-portos hálózati töltő 67W Fehér (2xUSB-C, 1xUSB-A)
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 / GT 1030 - Low profile is (LP)
- Hp, Dell, Lenovo gyári 65W USB-C / Type-C töltők, tápegységek
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




