You are here: Re: Newbie needs help with ereg regular expression « All PHP « IT news, forums, messages
Re: Newbie needs help with ereg regular expression

Posted by Curtis on 02/17/07 06:09

mvandenb@gmail.com wrote:
> On Feb 16, 6:55 am, raj <r...@nospam.com> wrote:
>> Hi,
>>
>> I have to repost this to restate the question. No disrespect to the original
>> reply.
>>
>> Please can someone help regarding providing a regular expression for entering
>> a set of characters with letters, numbers, periods (.), hyphens (-), or
>> underscores (_) only.
>>
>> I need to do this using ereg
>>
>> I've got as far as this but it doesn't quite work:
>>
>> $pattern="^([a-z0-9.-_]{0,30})$";
>> if(ereg($pattern,$_SESSION['id']))
>> ...
>>
>> Thank you in advance.
>>
>> Kind regards,
>>
>> Raj (newbie)
>
> So you have written
>
> $pattern="^([a-z0-9.-_]{0,30})$"
>
> match a to z, 0 to 9, "." to '_' starting at the beginning of the line
> and ending at the end of the line with a maximum of 30 character and a
> minimum of 0 character.
>
> they are right about preg_match. which all it means is you need to
> wright you regex slightly differently and you can do fancy things if
> you wanted to.
>
> http://www.perl.com/doc/manual/html/pod/perlre.html
>
> so
>
> "/^[\w\.\-]{0,30}$/
> or
> "/^[a-zA-Z0-9\_\.\-]{0,30}$/
> which is the same thing just longer to write out
> and these are generally case sensitive remember so 'a' != 'A' (hence a-
> zA-Z and not just a-z)
>
>
> try that or at lest it should give you a good direction

You should not escape dots in character classes, as they are not meta
characters in that context. Also, if - (dash) is the last character in
the character class, it also does not need to be escaped. Using \w
would be better, as it would allow for more characters with regard to
locale.

@OP: PCRE regex are much more efficient than the POSIX flavor. If your
worries are over consistency, then stop using POSIX regex. :-) As
already mentioned here, even the PHP documentation team is
recommending PCRE preg_* functions over ereg_* functions at all turns.

Also, you already have a pattern, have you tried testing it? If you
have a specific problem, ask a specific question.

--
Curtis

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация