Checking for a valid filename using Reg expressions - HELP!

P

papillonimages

Please can someone help me, I am trying to write a Regular Expression
check for a valid (Windows) filename (cant believe I couldnt find one
on the net already?!?!?!). Anyway, here is what I have but it doesnt
fully work - e.g. it allows the use of quotes, and the ampersand in
some positions and I just cant correct it??! Sorry for being a dull
newbie.

TIA.
 
M

Mick White

Please can someone help me, I am trying to write a Regular Expression
check for a valid (Windows) filename (cant believe I couldnt find one
on the net already?!?!?!). Anyway, here is what I have but it doesnt
fully work - e.g. it allows the use of quotes, and the ampersand in
some positions and I just cant correct it??! Sorry for being a dull
newbie.

TIA.

File name or file path?
Mick
 
D

Dr John Stockton

JRS: In article <[email protected]>
, dated Thu, 24 Feb 2005 11:01:45, seen in (e-mail address removed) posted :
Please can someone help me, I am trying to write a Regular Expression
check for a valid (Windows) filename (cant believe I couldnt find one
on the net already?!?!?!). Anyway, here is what I have but it doesnt
fully work - e.g. it allows the use of quotes, and the ampersand in
some positions and I just cant correct it??! Sorry for being a dull
newbie.
RegExp = /^["']?(.)?([^\|\&\<\>\;\*\?\\\\\/:]+\.\w+)["']?$/

For a start, the close quote must match the open quote. But only " can
be used for that.

RegExp = /^("?)(.)?([^\|\&\<\>\;\*\?\\\\\/:]+\.\w+)\1$/

I don't see why you allow a possible arbitrary character after the first
optional quote.

You appear to disallow the colon, meaning that you cannot specify a
drive, and you cannot specify a path. ISTM that in general the drive
and path should be allowed; include ([a-zA-Z]:)? and allow multiples
of what you have above with \ in between - which may be impossible.

You seem to require an extension; I'm not sure of that. In the
extension, you allow only word characters; an extension can, ISTM,
contain all the characters that the rest can - I frequently use $$$, for
example, and sometimes £££.

In your list of barred characters, I'd put colon before slash.
Javascript won't mind, but it will be a little easier to read.


If these are meant to be names of existing files, why bother? If the
file can be found, the name is OK; otherwise, it is wrong. If they are
meant to be names of new files, do you need to allow all possibilities?
you might list instead those that are needed, which has the benefit of
rejecting those of value above 126.


You should have given a written description of the intended criteria;
then it would have been easier to check your intent and your
implementation thereof.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top