chrisuk Posted May 2, 2007 Share Posted May 2, 2007 if i have say.. if (!ereg ("[A-Z][a-z]", $surname )) it wont take an input such as £"$£%, or 998943 BUT, if you do say 9Joe88, or $%Harry^...it gets accepted Why is that happening? thanks Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 2, 2007 Share Posted May 2, 2007 What are you trying to accomplish? The reason the first one fails is that it does not contain ANY of the characters you specified. The way you have written the regex, the string must contain at least ONE of the characters you have specified. I am assuming you are wanting to limit the user to ONLY entering the characters specified: if (eregi ("[^a-z]", $surname )) { echo "Invalid"; } else { echo "Valid"; } Quote Link to comment Share on other sites More sharing options...
chrisuk Posted May 2, 2007 Author Share Posted May 2, 2007 Thanks yes that is what I am trying to do I have done as you suggested, but it only works if i enter say John Smith, and not john smith...which is odd? Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 2, 2007 Share Posted May 2, 2007 You need to post your code, I don't think you followed my example correctly. You are probably not using eregi as I did in my example! ereg is case sensitive, eregi is not. Plus, did you change the test from a false test to a positive test? Lastly, if you want to include spaces in the name then you need to add a space to the test as well. if (eregi ("[^a-z ]", $surname )) { echo "Invalid"; } else { echo "Valid"; } Quote Link to comment Share on other sites More sharing options...
chrisuk Posted May 2, 2007 Author Share Posted May 2, 2007 Ahh, i forgot to make it a positive working properly now, thanks Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.