webForumDet fria alternativet

Lyckas inte validera tecken?

PHP

8 svar · 478 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

God afton!

Följande kollar endast om sista tecknet i strängen är korrekt?

if(!preg_match("/[^a-zA-Z0-9\Ä\ä\Å\å\Ö\ö\Ü\ü\ ]+$/s", $username))
		{
		$error_mess[1] = 'Användarnamnet innehåller otillåtna tecken';
		}

Jag vill såklart kontrollera hela strängen, hur göra?

Medlem sedan juni 20031 837 inlägg
#2
if(!preg_match("/^[^a-zA-Z0-9\Ä\ä\Å\å\Ö\ö\Ü\ü\ ]+$/s", $username))
        {
        $error_mess[1] = 'Användarnamnet innehåller otillåtna tecken';
        }

^ betyder start på strängen om den inte står innanför [ ]

/r
varför använder du dubbla negationer?

Medlem sedan apr. 2006244 inlägg
#3

Kan inget om regexp, negationer? var? :)

testade med preg_match_all() mendet gick inge vidare :(

Medlem sedan dec. 20025 483 inlägg
#4
if(!preg_match("/[^a-zA-Z0-9ÄäÅåÖöÜü ]/", $username)) 
        { 
        $error_mess[1] = 'Användarnamnet innehåller otillåtna tecken'; 
        }
Medlem sedan juni 20031 837 inlägg
#5

i din if-sats börjar du med ! ( en negation)
sen har du först i ditt regexp [^a-z....] (^ är en negation till)

testa koden som Peter S föreslog.

står ^ innanför först innanför [ ] betyder det negation.
står ^ utanför [ ] betyder det början på rad/sträng.

Medlem sedan apr. 2006244 inlägg
#6

Ok, nu börjar det ljusna! Måste sätta mig in lite mer i det där med regexp men jag kan inte låta bli att tycka att det är sååå tråkigt :)

Medlem sedan juni 20031 837 inlägg
#7

det är inte så roligt i början för det ser väldigt krångligt ut men när man väl börjar förstå hur det används så är det roligt för man kan göra väldigt mycket och kraftfulla sökningar/matchningar med så pass lite kod.

Medlem sedan juni 20031 837 inlägg
#8

https://www.php.net kan du hitta mycket bra inforamtion
här är en länk till Pattern Syntax, http://se.php.net/manual/sv/reference.pcre.pattern.syntax.php
du har även http://se.php.net/manual/sv/reference.pcre.pattern.modifiers.php

Medlem sedan apr. 2006244 inlägg
#9

tack så mycket, jag får ta mig i kragen nu...

634 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
501 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
501 ms — ändringar (db)