Avatar billede martinfrost Nybegynder
16. september 2001 - 16:32 Der er 13 kommentarer og
1 løsning

Må kun indehold 0-9 samt x,y og z.

Jeg skal lave et validation-script, der tjekker om en streng inderholder ugyldige tegn.

Scriptet skal således tjekke om strengen indeholder andre tegn end tallene 0-9 samt x, y og z. Dog må der godt være + og - i stregen.

Håber nogen kan hjælpe!! :)

/ Martin
Avatar billede martinfrost Nybegynder
16. september 2001 - 16:35 #1
Overskriften skulle c-føldig være \"Må kun indeholde...\" og ikke \"Må kun indehold\"... ;-)
Avatar billede Slettet bruger
16. september 2001 - 16:57 #2
Det er nok noget RegExp... ?
Avatar billede martinfrost Nybegynder
16. september 2001 - 16:58 #3
RegExp?
Avatar billede jakoba Nybegynder
16. september 2001 - 17:22 #4
<script>

var inddata = new Array( \"123x\", \"12.3yz\" ); // udvid selv og test

for ( var i=0; inddata.length>i; i++ ) {
    if ( /^[0-9xyz]+$/.test( inddata[i] ) )
        alert (\"strengen \'\" +inddata[i] +\"\' er OK.\" );
    else
        alert (\"strengen \'\" +inddata[i] +\"\' duer ikke.\" );
};

</script>
Avatar billede jakoba Nybegynder
16. september 2001 - 17:26 #5
  /^[0-9xyz]+$/
er en REGular EXPression. en meget komprimeret måde at lave mønstergenkendelse på strenge.
læs mere her: http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm
(søg på \"regexp\" i indexet).

mvh JakobA

reklame: vær rar og svar på http://www.eksperten.dk/spm/109707
Avatar billede martinfrost Nybegynder
16. september 2001 - 17:27 #6
hvordan vil det se ud, hvis strengen hedder \"t1\"
og den skal kun lave alert, hvis den ikke duer? eller skal den kalde beregn()

Forresten må strengen også godt indeholde \"=\"

Avatar billede jakoba Nybegynder
16. september 2001 - 17:30 #7
Ups + og - skulle også være tilladt:

  /^[0-9xyz\\+\\-]+$/

både + og - har speciel betydning i en regexp så der skal \\ foran for at fortælle det er bogstav + og bogstav - der menes.
Avatar billede jakoba Nybegynder
16. september 2001 - 17:35 #8

  <script>

var t1 = \"123x+12.3yz\"; // udvid selv og test

if ( /^[0-9xyz\\+\\-=]+$/.test( t1 ) )
    beregn( t1 );
else
    alert (\"strengen \'\" +inddata[i] +\"\' duer ikke.\" );

</script>
mon ikke også du skal have blanktegn med? bare skriv et blanktegn ind imellem [ og ].

mvh JakobA
Avatar billede jakoba Nybegynder
16. september 2001 - 17:37 #9
Ups. glemte at ændre  inddata[i]  til  t1  i alerten :(
Avatar billede martinfrost Nybegynder
16. september 2001 - 17:46 #10
Det virker fint :) Men hvis den nu skal tjekke 3 strenge hva så?! Og beregn() skal først udføres hvis alle 3 duer...

vi kan kalde de andre strenge for t2 og t3
Avatar billede jakoba Nybegynder
16. september 2001 - 17:54 #11
<script>

var t1 = \"123x+12.3yz\"; // udvid selv og test
var t2 = \"123x+12.3yz\"; // udvid selv og test
var t3 = \"123x+12.3yz\"; // udvid selv og test

if (  /^[0-9xyz\\+\\-=]+$/.test( t1 )
      && /^[0-9xyz\\+\\-=]+$/.test( t2 )
      && /^[0-9xyz\\+\\-=]+$/.test( t2 ) ) {
    beregn( t1 );
    beregn( t2 );
    beregn( t3 );
} else
    alert (\"en eller flere af strengene \'\" +t1 +\"\', \'\" +t2 +\"\', \'\" +t3 +\"\' duer ikke.\" );

</script>
Avatar billede martinfrost Nybegynder
16. september 2001 - 18:01 #12
Takker mange gange :)

Lige en anden ting - hvordan får jeg en tekst til at stå i toppen af en celle i en tabel?! <td align=top> virker ik :(

Martin
Avatar billede jakoba Nybegynder
16. september 2001 - 18:10 #13
når det er lodret skal der bruges  valign  (v for Vertikalt)

    valign=\'top\'

Og tag og skriv de der citationstegn omkring parametrene i dine html kommandoer.

tak for point

mvh JakobA
Avatar billede martinfrost Nybegynder
16. september 2001 - 18:16 #14
Takker igen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester