Froxz Froxz - 4 months ago 7
Javascript Question

Regex extension and language

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


  1. _ underscore

  2. en or ru or cy (country code 2 letters)

  3. . (dot)

  4. extensions (jpeg, jpg, mp4, png, gif)



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

Answer

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 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:

Regex101

Comments