Toon posts:

[JS] geen spatie in form field

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag dat er in een formulier gecheckt wordt of er een spatie wordt ingevoerd. Oftewel: ik heb een veld \"telefoonnummer\" en daar mag geen spatie in voorkomen.

Nu heb ik:

code:
1
2
3
4
5
6
7
8
9
    function checkTelefoonnummerV(str)
    {

        //if (str.length >=10 )
        if (str.indexOf(\" ") > 0 )
            return false;
        else
            return true;
    }


en dat roep ik aan met:

code:
1
2
        if (! checkTelefoonnummerV(form.Telefoonnummer.value))
            errArr[i++] = \'blabla.\';


Maar dat werkt niet? Wie weet hier een oplossing voor?

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
Gewoon, serverside spaties er uit halen. Klopt lengte niet, foutmelding geven en opnieuw in laten voeren.

Clientside dingen afvangen is vragen om problemen. Niet iedereen (ik bijvoorbeeld) heeft Javascript aan staan.

Copy.com


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:39

TeeDee

CQB 241

Definieer "werkt niet". Krijg je foutmeldingen?
Waarom een 'foutmelding' geven als je het gewoon kan vervangen tijdens het submitten.
Geeft alleen maar extra 'frustratie' voor de gebruikers.

Als je trouwens toch gaat escapen (\" pak dan ook het andere char erbij.
Dus (\" \"), maar pin me daar niet op vast :)
Lomp ;)

[ Voor 26% gewijzigd door TeeDee op 06-11-2006 15:30 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Hermanvh
  • Registratie: Januari 2001
  • Laatst online: 28-11 12:53

Hermanvh

webOS fan, hacker, developer

Kan je de spatie er niet gewoon uit 'trimmen' ?

webOS all the way!


  • Optix
  • Registratie: Maart 2005
  • Laatst online: 19-11 11:46
Of splitten op spaties...

code:
1
2
3
4
5
6
7
8
function checkTelefoonnummerV(str)
{
    var arr = str.split(' ');
    if(arr.length > 1)
        return true;
    else
        return false;
}

[ Voor 78% gewijzigd door Optix op 06-11-2006 15:18 ]

.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

De index moet groter zijn dan -1. Ik wed dat je nu getest hebt door enkel een spatie in te tikken, en laat nou net het eerste karakter van een string de index 0 hebben. Verder zou ik die \ voor de " maar eens snel weghalen; de code highlighter laat zien waarom:
JavaScript:
1
2
3
4
5
6
7
8
9
    function checkTelefoonnummerV(str)
    {

        //if (str.length >=10 )
        if (str.indexOf(\" ") > 0 )
            return false;
        else
            return true;
    }
edit:
Ah, blijkbaar laat de highlighter dat niet zien. :+

Verder ben ik het niet met sariel eens. Natuurlijk moet je dit soort dingen ook serverside afvangen, maar clientside checken kan nooit kwaad.

[ Voor 36% gewijzigd door NMe op 06-11-2006 15:20 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Sorry het was eigenlijk simpeler dan ik dacht:

code:
1
2
3
4
5
6
7
    function checkTelefoonnummerV(str)
    {
        if (str.indexOf(" ") >= 0 )
            return false;
        else
            return true;
    }


Ik moest dit even snel oplossen en kon het niet snel serverside aanpassen... maar goed, bedankt voor de hulp!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Maar wat schiet je op met zo'n simpele controle als dit?
0123456789 mag wel
012-3456789 mag wel
012x3456789 mag wel
012.3456789 mag wel
012 3456789 mag niet?

| Toen / Nu


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik heb telefoonnummers altijd al lastig gevonden om goed te valideren. Iedereen herkent de meest achterlijke telefoonnummers wel, maar om er nu een regex ofzo voor te schrijven...

Je hebt tenslotte mobiele, 0900, 0800, internationale, etc nummers. En die kun je nog in 6000 formaten neerzetten. Met en zonder spaties, +31, 0031, (06-), etc.

Controleren jullie je telefoonnummers? Of is dat gewoon een kwestie van uitprogrammeren?

Fat Pizza's pizza, they are big and they are cheezy


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-11 22:35

MBV

telefoonnrs?
PHP:
1
ereg("^0[0-9]{1,3}-[0-9]{6-8}$", $telno);

Dan ben je toch al een heel eind, als je alleen nederlandse nummers wilt hebben met een streepje erin. Spaties verbieden doen de meeste sites, en veel sites verbieden meer dan 10 tekens (oftewel: streepje weglaten), waardoor je regex veel makkelijker wordt: 0, gevolgd door 9 cijfers :).

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

MBV schreef op maandag 06 november 2006 @ 21:21:
telefoonnrs?
PHP:
1
ereg("^0[0-9]{1,3}-[0-9]{6-8}$", $telno);

Dan ben je toch al een heel eind, als je alleen nederlandse nummers wilt hebben met een streepje erin. Spaties verbieden doen de meeste sites, en veel sites verbieden meer dan 10 tekens (oftewel: streepje weglaten), waardoor je regex veel makkelijker wordt: 0, gevolgd door 9 cijfers :).
Dat is nog niet de keuzevrijheid die ik de gebruiker wil geven eigenlijk, maar goed, dit is niet het topic ervoor...

Fat Pizza's pizza, they are big and they are cheezy


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Ik heb het ooit es opgelost door een dropdown met prefixen en de (0) al uit te printen. De user moest dan enkel nog de rest in typen. Werkte wel niet goed voor italie (dacht dat het italia was in elk geval), want daar valt de nul niet (altijd?) weg. Met een js/php gooide ik alles dat geen cijfer was eruit.
HTML:
1
2
3
4
<!-- pseudocode -->
<select name="geg[tel_prefix]" class="subscribe"></select>
(0)
<input name="geg[tel_rest]" class="subscribe">


Voordeel is dat je je inderdaad kan permitteren om het input-veld op eenvoudige wijze uit te kuisen. Ik raakte nl in de knoop met de (0)-notatie in mijn toenmalige regex (en ik ben niet zo'n regexpert).
Pagina: 1