Nandini Posted September 24, 2008 Share Posted September 24, 2008 See this carefullly. i have a html text field named as register string. I want to validate that field using php. I want to allow 4 type of strings only. Expect those 4 strings i dont allow another type string. The allowed string formates are. 1. username:secret@host 2. username:secret:username@host 3. username:secret@host:port/username 4. username:secret:username@host:port/username Here assume username="aaa", secret="bbb", host="ccc" and port value can be anything. I want to accept only the following 4 type strings only. Expect those 4 strings i dont allow another type string. 1. aaa:bbb@ccc 2. aaa:bbb:aaa@ccc 3. aaa:bbb@ccc:port(any value)/aaa 4. aaa:bbb:aaa@ccc:port(any value)/aaa Can any one tell me How can i do this Thanq Quote Link to comment Share on other sites More sharing options...
Nandini Posted September 24, 2008 Author Share Posted September 24, 2008 I think this is solved by regular expressions. Can any one have idea? Quote Link to comment Share on other sites More sharing options...
tibberous Posted September 24, 2008 Share Posted September 24, 2008 If I were you, I would split it into four separate preg_matches, then use a preg_match_all to make sure the username before the : is the same as the username after the / in the last two examples. Quote Link to comment Share on other sites More sharing options...
effigy Posted September 24, 2008 Share Posted September 24, 2008 <pre> <?php $tests = array( ### Pass. 'username:secret@host', 'username:secret:username@host', 'username:secret@host:000/username', 'username:secret:username@host:000/username', ### Fail. 'username:secret@host/', 'username:secret:username:etc@host', 'username:secret@host:username', 'username@host:000/username', 'username:secret:username@host:000@username', ); foreach ($tests as $test) { echo $test, ' <b>'; echo preg_match('% \A [^:@/]+:[^:@/]+(?::[^:@/]+)? @[^:@/]+ (?::\d+/.+)? \z %x', $test) ? 'Pass' : 'Fail'; echo '</b><br/>'; } ?> </pre> 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.