Avatar billede leif Seniormester
02. juli 2008 - 22:10 Der er 20 kommentarer og
2 løsninger

Hvis der er bogstaver så fejl

Hej,

Hvis jeg bruger denne, så virker det fint hvis $typeid består kun af bogstaver, men er der 1 tal så fejler den ikke, det skal den gøre.

if (!preg_match('([0-9])', $typeid)) {
echo "Ulovlig";
exit();
}

Hvad har jeg gjort galt ?

/Leif
Avatar billede jakobdo Ekspert
02. juli 2008 - 22:34 #1
Du tjekker om en linje indeholder et tal [0-9] og hvis det ikke gør, så melder du ulovligt.
Avatar billede erikjacobsen Ekspert
02. juli 2008 - 23:53 #2
if (!preg_match('/[0-9]/', $typeid)) {
Avatar billede erikjacobsen Ekspert
02. juli 2008 - 23:53 #3
Faktisk nok:

if (preg_match('/[0-9]/', $typeid)) {
Avatar billede nielle Nybegynder
03. juli 2008 - 07:01 #4
Eller hvis det kun er bogstaver som er lovlige:

if (preg_match('/[^a-z]/i', $typeid)) {
Avatar billede jakobdo Ekspert
03. juli 2008 - 07:03 #5
Avatar billede leif Seniormester
04. juli 2008 - 13:13 #6
nielle -> Tager "if (preg_match('/[^a-z]/i', $typeid)) {" også æøåÆØÅ med ?
Avatar billede nielle Nybegynder
04. juli 2008 - 13:17 #7
Nej, men det kan den nemr rettes til:

if (preg_match('/[^a-zæøåÆØÅ]/i', $typeid)) {
Avatar billede leif Seniormester
04. juli 2008 - 13:18 #8
Er vi enige om at hvis den både må indeholder A-Za-Z og 0-9 så er det:
if (preg_match('/[^a-zæøåÆØÅA-Z0-9]/i', $typeid)) {


Eller hvordan ?
Avatar billede jakobdo Ekspert
04. juli 2008 - 13:32 #9
Når du starter med ^ betyder det ordet ikke må indeholde det.
Så fjern evt. den, og smid !preg_match
Det vil give lidt bedre mening synes jeg.
Avatar billede leif Seniormester
04. juli 2008 - 16:08 #10
Ahh, så kunne jeg bedre forstår den ikke virkede som jeg ville have den til.

Vil både erikjacobsen, nielle og jakobdo smide et svar.
Avatar billede erikjacobsen Ekspert
04. juli 2008 - 16:15 #11
Nej tak.
Avatar billede cronaldo Nybegynder
04. juli 2008 - 20:16 #12
kan man i princippet ikke også gøre det med:

IF(is_numeric($str)){
    // Hvis det kun er tal
} ELSE {
    // Hvis det ikke er tal
}
.. ?
Avatar billede cronaldo Nybegynder
04. juli 2008 - 20:18 #13
.. ahh, is_numeric tillader vist også "." .. og så vidt jeg kan læse er det ikk ok? :) .. såå det er vist my bad ;)
Avatar billede leif Seniormester
04. juli 2008 - 21:11 #14
I mit tilfælde er det ikke OK nej
Avatar billede jakobdo Ekspert
04. juli 2008 - 22:19 #15
Du får et svar.
Avatar billede nielle Nybegynder
04. juli 2008 - 23:21 #16
04/07-2008 13:18:26> Nej. Det lille 'i' i

/.../i

står for at den skal behandle store og små bogstaver ens (i = ignore case). Det er derfor:

if (preg_match('/[^a-zæøåÆØÅ0-9]/i', $typeid)) {

eller måske endda bare:

if (preg_match('/[^a-zæøå0-9]/i', $typeid)) {

lidt afhængigt af omstændighederne.
Avatar billede nielle Nybegynder
04. juli 2008 - 23:21 #17
... og et svar :^)
Avatar billede leif Seniormester
04. juli 2008 - 23:45 #18
Jeg takker mange gange
Avatar billede leif Seniormester
04. juli 2008 - 23:46 #19
Tror nok jeg har styr på det simple tjeck lige nu (Håber jeg på)
Avatar billede jakobdo Ekspert
05. juli 2008 - 06:34 #20
Du kunne også overveje ctype_alphanum()
Den burde gøre det samme som du laver med en regexp.
Avatar billede jakobdo Ekspert
05. juli 2008 - 06:34 #21
Og takker forresten for point.
Avatar billede leif Seniormester
05. juli 2008 - 08:34 #22
Ikke interessant hvis den tog . med
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