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

kamyn9ka228

Client
Регистрация
17.12.2017
Сообщения
103
Благодарностей
4
Баллы
18
В базе есть номера русские и снгшные
русккие в базе начинаются на 79 , +79 , 89 , +89
Часто попадаются +77
Как-то различать их нужно не подскажете как?
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43
Для начала привести номера телефонов к общему виду - убрать "+","-", "пробелы" - оставить только цифры
Для каждого номера считать кол-во цифр в строке, если 12 цифр - сотовый номер
Разложить номер на составляющие, проверять на вхождение первой цифры - "7" или "8" - Россия
 

kamyn9ka228

Client
Регистрация
17.12.2017
Сообщения
103
Благодарностей
4
Баллы
18
Для начала привести номера телефонов к общему виду - убрать "+","-", "пробелы" - оставить только цифры
Для каждого номера считать кол-во цифр в строке, если 12 цифр - сотовый номер
Разложить номер на составляющие, проверять на вхождение первой цифры - "7" или "8" - Россия
соу хард да и приводить в общий вид это капец) Слишком долго шаблон работать будет .
По поводу 12 цифр там все сотовые...
 

itserviceinс

Активный пользователь
Регистрация
12.11.2017
Сообщения
108
Благодарностей
30
Баллы
28

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43
Слишком долго шаблон работать будет .
Что долгого, номера в список - список замена по 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, "");
}
 

kamyn9ka228

Client
Регистрация
17.12.2017
Сообщения
103
Благодарностей
4
Баллы
18
Что долгого, номера в список - список замена по 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
Номер сохраняется в переменку как-нибудь в переменной нужно определять)
 

kamyn9ka228

Client
Регистрация
17.12.2017
Сообщения
103
Благодарностей
4
Баллы
18
У меня база вида 79206571709:пароль|М|15|Россия|Ярославль|29|19|0|0
Номер сохраняется в переменку как-нибудь в переменной нужно определять)
без лишних танцев с бубном :3 через if
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
+77 Казахстан
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
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 - выход по зелёной
 

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