I looking into validating some file names. But cant figure out correct regex file names can be anything, but need to check if filename ends with
so file
my_file_dummy_name.jpeg - not valid
my_file_dummy_name_en.jpeg - valid
For Now I tried this (and is working but maybe there is better solution)
/(\_\w.\.\w+)/g
One more:
/(\_[a-z]{2}\.[a-z]{3,4})/g
The problem with your original regex is that, while it would match the filenames you want to allow, it would also match things you don't want.
For example, the following regex
/(\_\w{2}\.\w+)/g
would match the file my_file_dummy_name_de.mpeg
, which is a video file from Germany. Clearly, we wouldn't want to watch this in the first place.
Try this regex:
_(en|ru|cy)\.(jpeg|jpg|mp4|png|gif)$
Demo here:
If you want the regex to do all the checking for you, there's a more strict way to go about this:
/_(en|ru|cy)\.(jpeg|jpg|mp4|png|gif)$/
This way you ensure all those constraints you mentioned. Also, there's no need for the g
lobal flag, as we're only interested in the end of the string (this is why I put the EOL anchor $
). You could add, though, the i
gnore case flag if there's a possibility of mixed case in the filenames.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With