Avatar billede arnor Nybegynder
03. marts 2006 - 09:48 Der er 15 kommentarer

regular experssion

Hej

Jeg har fx. tallet 1234567, dette tal må ikke forekomme i talrække beståendende af 7 cifre.

1234567 = Failure
12345  = Failure
2222222 = valid
we33333 = faliure

Har forsøgt med denne.
[^1234567$[0-9] {7} ]
Avatar billede Slettet bruger
03. marts 2006 - 11:29 #1
Kan du forklare det på en anden måde..?
Avatar billede arnor Nybegynder
03. marts 2006 - 11:39 #2
jeg prøver

Krav:
Skal være tal på 7cifre, må ikke have en bestemt kombination som fx.1234567

Håber dette forklarer det.
Avatar billede Slettet bruger
03. marts 2006 - 11:45 #3
if (strlen($test) == 7 && $test != 1234567) {
  //
}
Avatar billede arnor Nybegynder
03. marts 2006 - 11:49 #4
Ja, det gør hvad den skal, men jeg skal kunne udtrykke det vha regular expression. Hvis det er muligt.
Avatar billede Slettet bruger
03. marts 2006 - 11:53 #5
^(?!1234567)(\d){7}$

.. tror jeg kan gøre det. :-)
Avatar billede arnor Nybegynder
03. marts 2006 - 11:59 #6
Den fejler

Failure: The string '7654321' does NOT match patten '^(?!1234567)(\d){7}$'

Men tak for dit forslag!
Avatar billede coderdk Praktikant
03. marts 2006 - 12:17 #7
Gartzen havde den næsten: /^(?!1234567)(\d{7})$/
Avatar billede arnor Nybegynder
03. marts 2006 - 12:31 #8
Ifølge min pattern tester,
http://www.itu.dk/courses/W2/F2006/php/pattern3.php
fejler den også
Failure: The string '7654321' does NOT match patten '/^(?!1234567)(\d{7})$/'
Avatar billede coderdk Praktikant
03. marts 2006 - 12:54 #9
Øh nej:

<?php

    $tal = "7654321";
    $pat = "/^(?!1234567)(\d{7})$/";
    if ( preg_match( $pat, $tal ) )
    {
      echo "$pat matcher $tal";
    }
    else
    {
      echo "$pat matcher IKKE $tal";
    }

?>

Den virker skam ;)
Avatar billede coderdk Praktikant
03. marts 2006 - 12:55 #10
Måske skal du bare skrive: ^(?!1234567)(\d{7})$
I din pattern tester?
Avatar billede Slettet bruger
03. marts 2006 - 13:22 #11
Test den her:

http://www.regular-expressions.info/javascriptexample.html

Den virker som den skal.
I PHPs PREG skal du skrive /'er rundt om udtrykket..
Avatar billede arnor Nybegynder
03. marts 2006 - 13:39 #12
tak, den er god!
Avatar billede stingbat Nybegynder
03. marts 2006 - 14:43 #13
Problemet med at pattern ikke virkede helt til start, at arnor's tester bruger ereg fremfor preg_match, hvormed at den ikke helt kan lide udtrykket :)
Avatar billede coderdk Praktikant
03. marts 2006 - 14:48 #14
Yep, nu skrev han ikke om han brugte ereg eller preg, men det lader til at det var ereg :) Man bør altid bruge preg! Den er hurtigere og mere effektiv :)
Avatar billede stingbat Nybegynder
03. marts 2006 - 15:30 #15
Fandt ud af det, da jeg for sjov testede hans testeder :) Den kom med en stor fed warning :P

Men ja! Holder mig også altid til preg - meget bedre og hurtigere. Har også en masse fordele :)
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