Что вы можете сделать, это сопоставить 10 цифр ^[0-9]{10}$
с начала ^
до конца $
строки и первого теста , если это удастся.
Если это так, вы можете получить только уникальные значения из строки, и если это число равно или больше 3, у вас есть совпадение.
Есть несколько способов удалить дублирующиеся значения из вашего массива. Для этого примера я использовал метод с этой страницы .
let strings = [
"1234567890",
"1122557890",
"7878787808",
"7878787878",
"1111122222"
];
let pattern = /^[0-9]{10}$/;
strings.forEach((s) => {
if (pattern.test(s)) {
let a = s.split("").filter(function(x, i, a) {
return a.indexOf(x) === i;
});
if (a.length >= 3) {
console.log("Valid: " + s);
}
}
});