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

kamyn9ka228

Client
Joined
Dec 17, 2017
Messages
103
Reaction score
4
Points
18
В базе есть номера русские и снгшные
русккие в базе начинаются на 79 , +79 , 89 , +89
Часто попадаются +77
Как-то различать их нужно не подскажете как?
 

inotoxic

Client
Joined
Apr 20, 2015
Messages
354
Reaction score
164
Points
43
Для начала привести номера телефонов к общему виду - убрать "+","-", "пробелы" - оставить только цифры
Для каждого номера считать кол-во цифр в строке, если 12 цифр - сотовый номер
Разложить номер на составляющие, проверять на вхождение первой цифры - "7" или "8" - Россия
 

kamyn9ka228

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

itserviceinс

Активный пользователь
Joined
Nov 12, 2017
Messages
109
Reaction score
31
Points
28

inotoxic

Client
Joined
Apr 20, 2015
Messages
354
Reaction score
164
Points
43
Слишком долго шаблон работать будет .
Что долгого, номера в список - список замена по regexp
Code:
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
Joined
Dec 17, 2017
Messages
103
Reaction score
4
Points
18
Что долгого, номера в список - список замена по regexp
Code:
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
Joined
Dec 17, 2017
Messages
103
Reaction score
4
Points
18
У меня база вида 79206571709:пароль|М|15|Россия|Ярославль|29|19|0|0
Номер сохраняется в переменку как-нибудь в переменной нужно определять)
без лишних танцев с бубном :3 через if
 

Koqpe

Client
Joined
Dec 23, 2014
Messages
1,099
Reaction score
648
Points
113
+77 Казахстан
 

Solus

Client
Joined
Apr 14, 2014
Messages
378
Reaction score
120
Points
43
как-нибудь в переменной нужно определять
Code:
if(project.Variables["vari"].Value.Contains("+77"))
{
    return "есть";
}
return "нету";
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,132
Points
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 - выход по зелёной
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)