Connecting Tech Pros Worldwide Forums | Help | Site Map

Easy ereg() question

news@celticbear.com
Guest
 
Posts: n/a
#1: Sep 17 '05
I'm trying to make sure a form has only one or two digits in either of
two fields.
I looked at php.net and
http://www.regular-expressions.info/reference.html and this is what I
put together, but while it successfully refuses any non-digit, it still
lets any number of digits through.

Any suggestions?

if ((ereg("([0-9]{1,2})", $people))&&(ereg("([0-9]{1,2})", $rooms))) {

Thanks!
Liam


Juliette
Guest
 
Posts: n/a
#2: Sep 17 '05

re: Easy ereg() question


news@celticbear.com wrote:[color=blue]
> I'm trying to make sure a form has only one or two digits in either of
> two fields.
> I looked at php.net and
> http://www.regular-expressions.info/reference.html and this is what I
> put together, but while it successfully refuses any non-digit, it still
> lets any number of digits through.
>
> Any suggestions?
>
> if ((ereg("([0-9]{1,2})", $people))&&(ereg("([0-9]{1,2})", $rooms))) {
>
> Thanks!
> Liam
>[/color]

Try: ^([0-9]{1,2})$
^ = beginning of string
$ = end of string

Grz, jrf
Mike Willbanks
Guest
 
Posts: n/a
#3: Sep 17 '05

re: Easy ereg() question


Liam,
[color=blue]
> I'm trying to make sure a form has only one or two digits in either of
> two fields.
> I looked at php.net and
> http://www.regular-expressions.info/reference.html and this is what I
> put together, but while it successfully refuses any non-digit, it still
> lets any number of digits through.
>
> Any suggestions?
>
> if ((ereg("([0-9]{1,2})", $people))&&(ereg("([0-9]{1,2})", $rooms))) {[/color]

Instead of ereg you should always use preg_match because it is faster
than ereg. Also part of your reason that it is matching any number of
digit is because what you are actually asking for is to test that there
is one or two digits in the rule...

Try the following:

if (preg_match('^[0-9]{1,2}$', $people) && preg_match('^[0-9]{1,2}$',
$rooms))

The ^ defines the start of a string and the $ defines the end of a string.

--
Mike Willbanks
Zend Certified Engineer
http://www.digitalstruct.com
news@celticbear.com
Guest
 
Posts: n/a
#4: Sep 18 '05

re: Easy ereg() question



Mike Willbanks wrote:[color=blue]
> Liam,
>
> Instead of ereg you should always use preg_match because it is faster
> than ereg. Also part of your reason that it is matching any number of
> digit is because what you are actually asking for is to test that there
> is one or two digits in the rule...
>[/color]

Thanks! And replier Juliette as well. Much appreciated!
The ^ and $ are regex components that seem pretty basic, but I guess I
completely overlooked their explanation. =/

Thanks
Liam

Closed Thread


Similar PHP bytes