String management. Special chars!

Justcrapx's Avatar
Light Poster
I was wondering how to make sure that there are no special chars included in a string like " ^ $ # " which i dont want people to use in their nicknames. In other words, how can i make sure that they only use english characters and numbers. I have tried to figure it out on PHP documentation but appears to be too complex for a beginner.
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
You have to use Regular Expressions (regex) to filter out bad characters.Checkout the exmaple below.

Code: PHP
$string = "Asdsd - sdsd ";
if(!preg_match("/^[\w]+$/",$string))
{
   print("Bad characters found!");
}
0
Justcrapx's Avatar
Light Poster
Thanks alot! That "regex" syntax is really lookin hard. Hope i can figure it out. There are so many characters to be omitted, so working out the pattern will be something messy i guess.
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
That regex only allows alphabets and numbers, do you want to remove the bad characters or just inform the user that he has enter some bad characters in his/her nickname?
0
Justcrapx's Avatar
Light Poster
I just noticed that the example pattern you've given filters out the entire charz except letters and numbers. Now the question is how to ommit numbers and allow some spesific charz.
0
Justcrapx's Avatar
Light Poster
What i exactly want is to make users chose their nicknames whic will only match the pattern i set.
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
Code: PHP
$string = "Asdsd - sdsd ";
 if(!preg_match("/^[A-Za-z0-9-._]+$/",$string)) //see here I allowed -,_ and .
 {
    print("Bad characters found!");
 }
0
Justcrapx's Avatar
Light Poster
Wow, i guess i now got it. Thank you very much pradeep. I love php =).
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
Me too! Keep posting, about your problems discoveries and inventions.