Вопрос: Какая нужна регулярка чтобы проверка проходила на номера одного оператора?

Лучший ответ: Вот еще вариант, проверяет номер написанный в любом формате со скобками вокруг кода и без с пробелами и с тире и с + в начале и безvar str = '90553334849';
alert(/^\+?9[ -]?\(?05[58]\)?[ -]?\d{3}[ -]?\d{2}[ -]?\d{2}$/.test(str));UPD:
вот проверка (одной регуляркой в одну строку) по массиву кодовvar str = '9(055)3334849';
var allow = ['055','058'];
alert((new RegExp('^\\+?9[ -]?\\(?('+allow.join('|')+')\\)?[ -]?\\d{3}[ -]?\\d{2}[ -]?\\d{2}$')).test(str));UPD3:
Почитайте: https://developer.mozilla.org/en-US/docs/Web/JavaS...
в разделе "Special characters in regular expressions." расписаны все спецсимволы, которые используются в регулярных выражениях.
про конструктор new RegExp там тоже есть...
кокретно в последнем примере:
т.к. регулярку нам надо создавать "динамически", то используется конструктор new RegExp , который из строки создает и возвращает регулярку и уже у нее вызывается метод .test()
про строку - в строке спецсимволы \ необходимо экранировать (предварять) символом \
в строку регулярки мы вставляем все коды из массива allow склеенные через символ |
регулярка вида (одно|второе|третье) читается как одно ИЛИ второе ИЛИ третье
в данном случае массив склеивается и реглярка читается как 055 или 058
ну, как-то так... )

Худший ответ: Одной регуляркой тут делать не правильно на мой взгляд, поэтому демонстрирую подход максимально развернуто.

Для начала ознакамливаемся с международным форматом телефонных номеров

А после немного кодим
// функция разбирает телефонный номер на части и возвращает их для проверки
function parsePhoneNumber(phoneNumberAsText){
  // через парамерт phoneNumberAsText функция получает текст содержащий номер телефона
  // предположим что обрабатываемое текстовое представление номера телефона
  // может принимать следующий вид (и имеет принадлежность к РФ):
  // "+7 (999) 888-77-55"
  // "8 (999) 888-77-55"
  // "+7 999 888-77-55"
  // "+7999888-77-55"
  // "+799988-777-55"
  // "+799988-77-555"
  // "+79998887755"
  // "89998887755"
  // и т.д.


  // убираем из него все лишнее
  var phone = "+"+phoneNumberAsText.replace(/^8/,"+7").replace(/[^0-9]/,""); 

  // составляем регулярку на основе международного формата телефонных номеров
  var re = /^(\+\d)(\d{3})(\d{7})$/;

  // получаем составные части нашего телефонного номера
  var [phone, country, code, number] = phoneNumber.match(re);
  // где:
  // phone - номер телефона в формате "+79998887766"
  // country - код страны (фикция, данный код будет работать для РФ и еще пары стран, поэтому считаем что тут всегда "+7")
  // code - трехзначный код региона/оператора
  // number - семизначный номер телефона в регионе/у оператора

  // возвращаем полученный результат разбора номера
  return {
    phone: phone, 
    country: country,
    code: code,
    number: number
  };
}

// парсим номер "8 (999) 888-77-66"
var result = parsePhoneNumber("8 (999) 888-77-66");

// на выходе в result получим объект вида
// { phone: "+79998887766", country: "+7", code: "999", number: "8887766" }

// предположим что у вас есть массив с нужными вам кодами регионов/операторов
// allowCodes = ["999", "998" и т.д];

// смотрим совпадает ли код региона/оператора с одним из кодов в allowCodes
if( allowCodes.indexOf(result.code) ){
   console.log("Номер "+result.phone+" принадлежит искомой группе/региону/оператору")
}else{
  console.log("Номер "+result.phone+" НЕ принадлежит искомой группе/региону/оператору")
}