К разрабатывать на уже размещен ответ, вам нужен глобальный матч, следующим образом:
var matches = string.match(/(abc|def)\d{8,11}/g);
Это будет соответствовать все подмножества строки, которые:
- Начните с «ABC» или «DEF». Это часть «(abc | def)»
- Затем следуют 8-11 цифр. Это часть «\ d {8,11}». \ d соответствует цифрам.
Флаг «g» (глобальный) получает список всех совпадений, а не только первый.
В вашем вопросе вы указали 8-11 символов, а не цифр. Если неважно, являются ли они цифрами или другими символами, вы можете использовать «.». вместо "\ d".
Я также замечаю, что каждый из ваших совпадений соответствует более чем 11 символам, следующим за «abc» или «def». Если любое число цифр будет делать, то следующее регулярное выражение может быть лучше подходит:
- Любое количество цифр -
var matches = string.match(/(abc|def)\d*/g);
- По крайней мере, одна цифра -
var matches = string.match(/(abc|def)\d+/g);
- По крайней мере 8 цифр -
var matches = string.match(/(abc|def)\d{8,}/g);
+1 Потратьте время, чтобы написать объяснение! –