I don't understand what it is you're trying to accomplish, so, it's hard to offer a solution. If you just want to verify whether or not a variable contains numeric data, why not just use the is_numeric() function:
http://us4.php.net/manual/en/function.is-numeric.php preg_match() will return TRUE if it finds the pattern ANYWHERE in the string, so, that's why "asdf789" passes the test because it contains digits, whereas 'asdf' won't pass the test because the numbers 0-9 can't be found anywhere in that string. If you want the entire string to be tested for digits, you need to add the length of the string to the regex pattern: $length = strlen($data); preg_match("[0-9]{$length}", $data); Monty > From: [EMAIL PROTECTED] (Daniel J. Rychlik) > Newsgroups: php.general > Date: Sat, 31 May 2003 13:46:44 -0500 > To: <[EMAIL PROTECTED]> > Subject: regex problem > > Hello,, > > I have a preg_match issue matching numbers. I am currently using > > !preg_match ('/([0-9\-\.\#:])/', $_POST['nums1'] > throw error[] > > This fails if you use something like ' asdf ' but if you use ' asdf789 ' it > passes false and does not throw an error. > This is not the obvious solution.... I know its a problem in my regular > expression. Should I ONLY be using > > ' /([0-9])/ ' , ? > > Thanks in advance. > Daniel -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php