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 Link to comment https://forums.phpfreaks.com/topic/125569-php-regular-expressions/ 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? Link to comment https://forums.phpfreaks.com/topic/125569-php-regular-expressions/#findComment-649223 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. Link to comment https://forums.phpfreaks.com/topic/125569-php-regular-expressions/#findComment-649235 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> Link to comment https://forums.phpfreaks.com/topic/125569-php-regular-expressions/#findComment-649428 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.