Regex для номера мобильного телефона содержит не менее 3 уникальных цифр - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно регулярное выражение для проверки следующих условий в строке: -

1) содержит только цифры (0-9) 2) строка должна содержать три уникальные цифры 3) в строке не должно быть пробелов 4) и длина строки должна быть 10.

пример допустимых строк "1234567890" "1122557890" "7878787808"

недопустимые строки: - "7878787878" "1111122222"

1 Ответ

0 голосов
/ 03 мая 2018

Что вы можете сделать, это сопоставить 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);
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...