Gå til innhold

[Løst] IF brukernavn ikke starter med a-zA-Z fjern det som kommer før


Anbefalte innlegg

vi kan si at jeg jobber med et registeringsscript hvor jeg vil at brukernavnet skal kunne inneholde [a-z0-9A-Z_-] men må starte med en bokstav

 

jeg har alt brukt linjen

$username = '_-_Bruker#na()vn-02'; // bare et dårlig eksempel på hvordan jeg ikke vil at det skal se ut når jeg er ferdig med det
$username = preg_replace]('/[^a-z0-9A-Z_-]/','',$username); // nå blir $username = '_-_Brukernavn-02';

// nå ... hvordan får jeg dette til å bli 
// Brukernavn-02

 

så nå trenger jeg en liten linje eller noe som gjør at den vil skjekke om det første tegnet er en bokstav (stor eller liten) og hvis det ikke er en bokstav så skal den bli fjernet

Endret av black-light
Lenke til kommentar
Videoannonse
Annonse

Du kan bruke ctype_alpha og substr for å sjekke om første tegn er en bokstav.

Så er det greit at den som registrerer får melding om at man må ha en bokstav først, slik at den ikke fjerner automatisk :)

 

<?php

$string = array(
				'Brukernavn',
				'_Brukernavn',
				' Brukernavn',
				'*__;Brukernavn',
				);

echo 'Sjekk om første tegn er en bokstav:<br><br>';

foreach($string as $str) {
	echo '\'' . $str . '\': ' . (ctype_alpha(substr($str, 0, 1)) ? 'OK<br>' : 'FAIL<br>');
}


?>

 

Eller du kan bruke preg_match, F-eks:

/^[abcdefghijklmnopqrstuvwxyz ]{3,20}$/i

 

Kan du bruke da.

Endret av Thomas.
Lenke til kommentar

Du kan bruke ctype_alpha og substr for å sjekke om første tegn er en bokstav.

Så er det greit at den som registrerer får melding om at man må ha en bokstav først, slik at den ikke fjerner automatisk :)

 

<?php

$string = array(
				'Brukernavn',
				'_Brukernavn',
				' Brukernavn',
				'*__;Brukernavn',
				);

echo 'Sjekk om første tegn er en bokstav:<br><br>';

foreach($string as $str) {
	echo '\'' . $str . '\': ' . (ctype_alpha(substr($str, 0, 1)) ? 'OK<br>' : 'FAIL<br>');
}


?>

 

Eller du kan bruke preg_match, F-eks:

/^[abcdefghijklmnopqrstuvwxyz ]{3,20}$/i

 

Kan du bruke da.

 

Må vist lese meg litt opp på dette ...

men ja alltid lurt å gi beskjed om hva brukernavnet kommer til å bli før du lager det

ganske nylig laget jeg en bruker på en side

jeg skrev black-light-studio som brukernavn

den sa at det var ledig og slikt

da jeg hadde trykt sign up

ble jeg hetende black-light-stu

Lenke til kommentar

Så jeg leste litt på det og fant en løsning som ser ut til å funke for meg

 

noen mulige problemer i denne?



$count = 1;
$first_character = substr($username, 0, 1);
while ( ! ctype_alpha($first_character)){
$username = substr($username, 1);
$first_character = substr($username, 0, 1);
$count += 1;
if ($count >= 10){
	break($error = "For mye tull");
}
}

 

så vil jeg selvfølgelig sette det opp slik at man får en meldig og bekreftelse av noe slag slik at man kan være fornøyd med det brukernavnet man velger

Lenke til kommentar

Det er nå litt enklere å bare bruke en regexp da.

<?php
$username = '_-_Bruker#na()vn-02';

$username = preg_replace('/^[^a-z]+|[^a-z0-9-_]+/i', '', $username);

// $username == 'Brukernavn-02'

//En alternativ måte som muligens er litt klarere er:
//$username = preg_replace(array('/^[^a-z]+/i', '/[^a-z0-9-_]+/i') , '', $username);




?>

Lenke til kommentar

Det er nå litt enklere å bare bruke en regexp da.

<?php
$username = '_-_Bruker#na()vn-02';

$username = preg_replace('/^[^a-z]+|[^a-z0-9-_]+/i', '', $username);

// $username == 'Brukernavn-02'

//En alternativ måte som muligens er litt klarere er:
//$username = preg_replace(array('/^[^a-z]+/i', '/[^a-z0-9-_]+/i') , '', $username);

?>

 

ja det er det sikkert og vist

er bare jeg som ikke har noe serlig erfaring med regexp enda. (lære det bedre står på gjøremåls listen)

takker så meget

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...