Моя тестовая строка для следующего:
testing='12345,abc,123,54321,ab15234,123456,52341';
Если я понимаю ваш вопрос, вы бы хотели ["12345", "54321", "15234", "52341"]
.
Если JS-движки поддерживают регулярное выражение, вы можете сделать:
testing.match(/(?<^|\D)\d{5}(?=\D|$)/g)
Так как в настоящее время это не так, вы можете:
testing.match(/(?:^|\D)(\d{5})(?=\D|$)/g)
и удалите начальную незначную цифру из соответствующих результатов или:
pentadigit=/(?:^|\D)(\d{5})(?=\D|$)/g;
result = [];
while (( match = pentadigit.exec(testing) )) {
result.push(match[1]);
}
Обратите внимание, что для IE кажется, что вам нужно использовать RegExp, хранящийся в переменной , а не литеральное регулярное выражение в цикле while
, иначе вы получите бесконечный цикл.