Jump to content

starting out with expressions


RobertP

Recommended Posts

so i am not a huge fan of these snippets, but i need some help creating one.

 

string requirements:

-minimum length of 3.

-maximum length of 28.

-can only contain letters (both capital and none) and numbers.

-string can contain - (normal dash), they can not be at the very beginning/end of the string.

--> also, the dash can not be concurrent, string can not be 'asd--asd', but only 'asd-asd' or 'as-d-as-d'

 

this is what i have, i only have an issue with the dash.

function isValidDisplayName($displayName){
return preg_match('/[a-zA-Z0-9-]{3,28}/',$displayName);
}

 

PS: don't just post the code, please explain so i can learn :D

 

Link to comment
https://forums.phpfreaks.com/topic/250919-starting-out-with-expressions/
Share on other sites

Hope this helps.

 

Start of the string, followed by 1 allowed character that's not a dash

Followed by 1-26 characters that are either a letter number, or a dash not followed by another dash

Followed by 1 allowed character that's not a dash

Followed by the end of the string

 

'%
^ # Match the start of the string
[a-z0-9] # Match a letter or number once
(?: # Start a non-capturing group
    [a-z0-9] | -(?!-) # Match either a letter/number or a dash not followed by another dash (negetive lookahead)
){1,26} # End the non capturing group, and make sure it matches between 1 and 26 times
[a-z0-9] # Match a letter or number once
$ # Match the end of the string
%ix'

 

i - case insensitive, x - free spacing

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.