Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
64
rated 0 times [  68] [ 4]  / answers: 1 / hits: 89608  / 11 Years ago, tue, august 6, 2013, 12:00:00

I need 1 regular expression to put restrictions on the file types using it's extension.



I tried this for restricting the file type of html, .class, etc.




  1. /(.|/)[^(html|class|js|css)]$/i

  2. /(.|/)[^html|^class|^js|^css]$/i



I need to restrict a total of 10-15 types of files. In my application there is a field for accepted file type, and according to the requirement I have file types which is to be restricted. So I need a regular expression using negation of restricted file type only.



The plugin code is like:



$('#fileupload').fileupload('option', {
acceptFileTypes: /(.|/)(gif|jpe?g|png|txt)$/i
});


I can specify the acceptedFileType but i have given the requirement to restrict a set of file.


More From » regex

 Answers
13

Try /^(.*.(?!(htm|html|class|js)$))?[^.]*$/i



Try it here: http://regexr.com?35rp0



It will also work with extensionless files.



As all the regexes, it's complex to explain... Let's start from the end



[^.]*$ 0 or more non . characters
( ... )? if there is something before (the last ?)

.*.(?!(htm|html|class|js)$) Then it must be any character in any number .*
followed by a dot .
not followed by htm, html, class, js (?! ... )
plus the end of the string $
(this so that htmX doesn't trigger the condition)

^ the beginning of the string


This one (?!(htm|html|class|js) is called zero width negative lookahead. It's explained at least 10 times every day on SO, so you can look anywhere :-)


[#76498] Monday, August 5, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
longd

Total Points: 616
Total Questions: 110
Total Answers: 101

Location: Andorra
Member since Sat, May 27, 2023
1 Year ago
;