Regex javascript - match either or -


using javascript , .match() can simplify regex? want match against alphanumeric code of 5x5 or 3x5 blocks seperated hyphens.

for example want match:

123ef-12b45-123h5-a2cge-a2345

or

54321-abcde-f2345

so far tried (\w{5}-){4}\w{5} match first example , (\w{5}-){2}\w{5} match second. there way match either or? tried combining | matched 3 pairs.

or better run regex .match() twice each pattern?

(\w{5}-){2}\w{5}|(\w{5}-){4}\w{5} 

the alternation | first try match left subexpression, , when fails tries right one. when left 1 includes right one, never match right one. in case stop @ 3 groups if there more. try exchange them:

(\w{5}-){4}\w{5}|(\w{5}-){2}\w{5} 

you combine them one:

((\w{5}-){4}|(\w{5}-){2})\w{5} (\w{5}-){2}((\w{5}-){2})?\w{5} 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -