> Here is my rendition of what I think you are looking for. > > $str = 'tab( )/space( )/path-asdf\asdf_!@#$%^&*();:...'; > > if ( preg_match('|^[a-zA-Z0-9!@#$%^&*();:_.\\\\ /\t-]+$|', $str) ) { > echo 'success'; > } else { > echo 'failure'; > } > Here is the problem, and it is strange. If I enter each of the above characters into my form one at a time and hit submit after each one, NO error is produced for any of them. If I cut and past this all at once: a-zA-Z0-9!@#$%^&*();:_.\ then an error IS returned. If I continue to remove one character at a time, submitting the form each time, errors ARE still produced. This is the code in a nutshell: If(isset($submit)) { $name = stripslashes($_POST['name']); >> I have tried this with and without $formerror = array(); unset($result); >> I have tried this with and without if($result = ValidateString($name)) { $formerror['name'] = $invalidcharacters; Function ValidateString($string) { if (!preg_match('|^[a-zA-Z0-9!@#$%^&*();:_.\\\\ /\t-]+$|', $string) ) { return invalidchars; } } } <Form Stuff> <input name="name" size="30" type="text"> </form> Thanks -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php