Avatar billede kgp43 Nybegynder
06. november 2004 - 19:59 Der er 12 kommentarer og
1 løsning

variabel må kun indeholde bogstaver, tal og -

Hejsa,

Hvordan tjekker jeg om en variabel kun indeholder bogstaver, tal og bindestreg (-) ?
Avatar billede hmortensen Nybegynder
06. november 2004 - 20:19 #1
Nu er reg.exp ikke min stærke side, men måske sådan her:
if (preg_match("/^[\w\d\æ\Æ\ø\Ø\å\Å\-]+$/i", $var)) {
Avatar billede fojensen Nybegynder
06. november 2004 - 21:20 #2
Her er en lille test du kan køre:

$streng = "fotomappe-årgang2004";

  if(!ereg("^[-a-z0-9æøåÆØÅ]*$", $streng)) {
echo "strengen indeholder ikke kun bogstaver, tal og bindestreg (-)";
  } else {
echo "strengen er OK indeholder kun bogstaver, tal og bindestreg (-)";
  }
Avatar billede hmortensen Nybegynder
06. november 2004 - 21:38 #3
Fra manualen:
"Bemærk: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg()"
Avatar billede hmortensen Nybegynder
06. november 2004 - 22:24 #4
fojensen, du mangler også lige A-Z hvis der skal være muglighed for stpre bogstaver
Avatar billede kgp43 Nybegynder
06. november 2004 - 22:50 #5
den må ikke indeholde æ,ø,å.

Vil det sige:

if(!ereg("^[-a-zA-Z0-9]*$", $streng)) {
echo "strengen indeholder ikke kun bogstaver, tal og bindestreg (-)";
  } else {
echo "strengen er OK indeholder kun bogstaver, tal og bindestreg (-)";
  }
Avatar billede fojensen Nybegynder
06. november 2004 - 22:59 #6
det er helt rigtigt, og hvis du vil begrænse længden til eksempelvis ikke over 15 tegn, så skal * (stjerne) erstattes af {0,15}
Avatar billede kgp43 Nybegynder
06. november 2004 - 22:59 #7
kanont, takker for hjælpen :)
Avatar billede hmortensen Nybegynder
06. november 2004 - 23:01 #8
Eller
/^[\w\d\-]+$/i
Avatar billede olebole Juniormester
07. november 2004 - 01:46 #9
<ole>

... men bemærk hmortensen's kommentar (06/11-2004 21:38:57). Perl-regExp er som oftest hurtigere - og til tider _væsentligt_ hurtigere.
Du bør helt afgjort benytte preg_match() i stedet  ;o)

/mvh
</bole>
Avatar billede kgp43 Nybegynder
07. november 2004 - 22:17 #10
har et problem. Den godtager også "_", hvilket er en fejl.

} elseif (($owndomain) AND (!preg_match("|^[-a-zA-Z0-9]+.[A-Za-z]|i",$owndomain))) {
  echo "<font color=red>Error in your domain name<br />
  <br />
  Please make sure your domain-name only contain letters, numbers and dashes (-) followed by the right extention (ex domain.com)</font>";
  exit();
   
} elseif (($subdomain) AND (!ereg("^[-a-zA-Z0-9]*$", $subdomain))) {
  echo "<font color=red>Only letters, numbers and dashes (-) are allowed</font>";
  exit();

}
Avatar billede kgp43 Nybegynder
07. november 2004 - 22:26 #11
Det gælder kun den øverste

} elseif (($owndomain) AND (!preg_match("|^[-a-zA-Z0-9]+.[A-Za-z]|i",$owndomain))) {
  echo "<font color=red>Error in your domain name<br />
  <br />
  Please make sure your domain-name only contain letters, numbers and dashes (-) followed by the right extention (ex domain.com)</font>";
  exit();
   
}
Avatar billede hmortensen Nybegynder
07. november 2004 - 22:37 #12
Prøvet den her /^[\w\d\-]+$/i ?
Avatar billede kgp43 Nybegynder
08. november 2004 - 09:23 #13
sådan her?

(preg_match("/^[\w\d\-]+$/i", $subdomain))
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