Regular Expression for Extension of File
javascript, regex
Solution
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 :-)
Problem
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. - `/(\.|\/)[^(html|class|js|css)]$/i` - `/(\.|\/)[^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.