Как узнавать русские номера

  • Автор темы Автор темы kamyn9ka228
  • Дата начала Дата начала

kamyn9ka228

Client
Регистрация
17.12.2017
Сообщения
103
Реакции
4
Баллы
18
В базе есть номера русские и снгшные
русккие в базе начинаются на 79 , +79 , 89 , +89
Часто попадаются +77
Как-то различать их нужно не подскажете как?
 
Для начала привести номера телефонов к общему виду - убрать "+","-", "пробелы" - оставить только цифры
Для каждого номера считать кол-во цифр в строке, если 12 цифр - сотовый номер
Разложить номер на составляющие, проверять на вхождение первой цифры - "7" или "8" - Россия
 
Для начала привести номера телефонов к общему виду - убрать "+","-", "пробелы" - оставить только цифры
Для каждого номера считать кол-во цифр в строке, если 12 цифр - сотовый номер
Разложить номер на составляющие, проверять на вхождение первой цифры - "7" или "8" - Россия
соу хард да и приводить в общий вид это капец) Слишком долго шаблон работать будет .
По поводу 12 цифр там все сотовые...
 
Слишком долго шаблон работать будет .
Что долгого, номера в список - список замена по regexp
Код:
Развернуть Свернуть Копировать
var list_data = project.Lists["Список 1"];
var regular = @"\D";
for (int i=0; i < list_data.Count; i++)
{
list_data[i] = System.Text.RegularExpressions.Regex.Replace(list_data[i], regular, "");
}
 
Что долгого, номера в список - список замена по regexp
Код:
Развернуть Свернуть Копировать
var list_data = project.Lists["Список 1"];
var regular = @"\D";
for (int i=0; i < list_data.Count; i++)
{
list_data[i] = System.Text.RegularExpressions.Regex.Replace(list_data[i], regular, "");
}
У меня база вида 79206571709:пароль|М|15|Россия|Ярославль|29|19|0|0
Номер сохраняется в переменку как-нибудь в переменной нужно определять)
 
У меня база вида 79206571709:пароль|М|15|Россия|Ярославль|29|19|0|0
Номер сохраняется в переменку как-нибудь в переменной нужно определять)
без лишних танцев с бубном :3 через if
 
+77 Казахстан
 
C#:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
str = Regex.Replace(str, @"[^+\d]", "");
if (!Regex.Match(str, @"^\+?(7|8)\d{10}(\D|$)").Success)
    throw new Exception(); // если номер телефона не RU, то выход по красной
// если RU - выход по зелёной
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)