Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Regexiä puhelinnumeroille

sormii [30.11.2012 13:25:31]

#

Terve, olen tässä hetken kaivellut regular expressionia suomalaisille puhelinnumeroille. Itselläni ei ihan ole taitoa regex mörköjen vääntämiseen.

Tarkoituksena olisi siis validoida merkkijonokenttä ja sallia vain numerot, välilyönnit, sulut, plusmerkit ja viivat.

jlaire [30.11.2012 13:44:09]

#

/^[\d ()+-]*$/

Edit: Tämä on se mitä pyysit, mutta Metabolixin on varmaan lähempänä sitä mitä oikeasti haluat.

Metabolix [30.11.2012 13:46:46]

#

[+]?[- ()0-9]+

On kuitenkin aika epäkäytännöllistä hyväksyä kaiken maailman sulkuvirityksiä, välejä ja viivoja, jotka eivät oikeasti kuulu puhelinnumeroihin. Parempi olisi tallentaa puhelinnumerot yksiselitteisessä muodossa kuten +358501234567.

sormii [30.11.2012 13:48:14]

#

Tämä riittää ainakin tällä erää. Kiitoksia paljon. Tietysti jos monimutkaisempaa on tarjota niin tottakai kelpaa, mutta tällä haavaa mitään tarkempaa vaatimusta ei ole minulle esitetty joten ainakin tämänsorttisia numeroita pitäisi päästää läpi:

0401234567
040 1234567
040-1234567
(02)1234567
+358401234567
+358 401234567

The Alchemist [30.11.2012 14:23:48]

#

Metabolix kirjoitti:

[+]?[- ()0-9]+

On kuitenkin aika epäkäytännöllistä hyväksyä kaiken maailman sulkuvirityksiä, välejä ja viivoja, jotka eivät oikeasti kuulu puhelinnumeroihin. Parempi olisi tallentaa puhelinnumerot yksiselitteisessä muodossa kuten +358501234567.

Itse en näe mitään väärää siinä, että järjestelmä hyväksyy numeron useissa eri muodoissa; se on vain käyttäjäystävällisyyttä. Numerot pitää kuitenkin normalisoida ennen kantaan tallentamista, jotta niiden jatkokäsittely olisi helpompaa.

Grez [30.11.2012 14:59:29]

#

The Alchemist kirjoitti:

Itse en näe mitään väärää siinä, että järjestelmä hyväksyy numeron useissa eri muodoissa; se on vain käyttäjäystävällisyyttä.

Älä nyt, VR:n hieno palautelomake vaatii että kerrot kellonajan* (liittyi se mitenkään palautteeseen tai ei) ja jos siihen kirjoittaa vaikka 8:00 niin se ei kelpaa vaan tulee ilmoitus että ajan täytyy olla muodossa tt:mm.

Kyllähän tuon nyt täytyy olla parhaiden käytäntöjen mukaista kun on isolla rahalla tehty.
[/sarkasmi]

* Se vaatii kellonajan silloinkin, jos valitsee aiheeksi esim. "Muu" jolloin sille ei ole edes kenttää näkyvissä.

sormii [30.11.2012 15:04:47]

#

Grez kirjoitti:

Älä nyt, VR:n hieno palautelomake vaatii että kerrot kellonajan* (liittyi se mitenkään palautteeseen tai ei) ja jos siihen kirjoittaa vaikka 8:00 niin se ei kelpaa vaan tulee ilmoitus että ajan täytyy olla muodossa tt:mm.
Kyllähän tuon nyt täytyy olla parhaiden käytäntöjen mukaista kun on isolla rahalla tehty.

[/sarkasmi]

Itselläni sattuu olemaan juurikin tässä samassa softassani automaattinen kellonaikakentän muotoilu javascriptillä väännettynä, tarviipa varmaan pistää eteenpäin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta