Reply to Re: validate file name using regular expression

Your name:

Reply:


Posted by Bosconian on 09/30/80 11:53

"Rik" <luiheidsgoeroe@hotmail.com> wrote in message
news:6dd9a$44befb27$8259c69c$26577@news1.tudelft.nl...
> Bosconian wrote:
>> "Rik" wrote:
>>> Bosconian wrote:
>>>> "Bosconian" wrote:
>>>>> I need a regular expression to validate characters for a given file
>>>>> name. I want to limit valid characters to the following:
>>>>>
>>>>> a-z
>>>>> A-Z
>>>>> 0-9
>>>>> underscores
>>>>> hyphens
>>>>> white spaces
>>>>>
>>>>> The file name must end with a period and a 3-character extension.
>>>>>
>>>>> I also want to prevent repeat underscores, hyphens and white
>>>>> spaces. Example: "__", "--" and " " would all be invalid.
>>>>>
>>>>> I found this example:
>>>>>
>>>>> ^[a-zA-Z0-9_\s-]+$
>>>>>
>>>>> This comes close, but it allows repeat underscores, hyphens and
>>>>> white spaces. It also uses "\s" which allows carriage returns,
>>>>> linefeeds, tabs, etc.
>>>
>>> I thought you wanted to allow whitespaces?
>>>
>>>>> Any help would be greatly appreciated.
>>>> I almost have it:
>>>>
>>>> $pattern = "|[\wa-zA-Z0-9\-_]+\.[a-zA-Z0-9]{3}$|";
>>> If you eant a WHOLE string to match, enchor it with both ^ and $
>>>
>>> /^([a-z0-9]+[\040_\-]?)*\.[a-z]{3}$/i
>>>
>>> Grtz,
>> What about preventing a space before the period? For example:
>> filename .txt
>
> He didn't specify that, so I didn't bother. (allthough a consequence from
> my
> regex is the name should start with somethning from [a-zA-z0-9], which he
> didn't specify either).
>
> 80% of the work with regular expressions is figuring out what the exact
> conditions are. If the regular expressions does what it's supposed to do,
> but doesn'r behave like you'd expect, it clear you've got your
> specifications wrong.
>
> Offcourse, one could:
>
> (1)
> /^([\040_\-]?([a-z0-9]+)*\.[a-z]{3}$/i
> (end with a character in [a-zA-Z0-9] before the dot.)
>
> (2)
> /^[a-z0-9]+([\040_\-]?([a-z0-9]+)*\.[a-z]{3}$/i
> (begin & end with a character in [a-zA-Z0-9] before the dot.)
>
> If we're _assuming_ it's a file_type validation, the '\.[a-z]{3}' isn't
> valid either, lot's of filetypes have an extention shorter or longer then
> 3
> characters, and not all int the range of {a-z]. (For instance mp3 or info)
>
> Grtz,
> --
> Rik Wasmus
>
>

Rik, thanks for the updated regexp!

You raise a good point about the file extensions. However the file types
that will be stored are primarily .doc and .pdf. If necessary the extension
support could be expanded to something like [a-z0-9]{2,6}.

[Back to original 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

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