Javascript – Regex string match


I have a long string in javascript like

var string = 'abc234832748374asdf7943278934haskhjd';

I am trying to match like

abc234832748374 – that is – I have tried like

string.match(\abc[^abc]|\def[^def]|) but that doesnt get me both strings because I need numbers after them ?

Basically I need abc + 8 chars after and def the 8-11 chars after ? How can I do this ?

Best Solution

If you want the literal strings abc or def followed by 8-11 digits, you need something like:


You can test it here:

Be aware that, if you don't want to match more than 11 digits, you will require an anchor (or [^0-9]) at the end of the string. If it's just 8 or more, you can replace {8,11} with {8}.