Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Фильтр номера ICQ по маске


Автор: Flap 21.11.2007, 11:54
Нужна функция для определения соответствия номера ICQ некой маске.
function checkMask($uin, $mask) должна возвращать true или false.

В маске можно использовать английские символы, цифры или звездочки.
Цифры - это конкретные цифры.
Символы - для обозначения любых цифр.
Звездочка - обозначает любое кол-во любых цифр.
Пример:
123* - 1234576, 123983 и т.д.
*123* - 312390, 3671230 ...
xx123xx - 9912399, 7712377 ..
*xxyyzz0 - 41122330, 906677880 ..
xx*xx - 1145611б 552414300 ...
xyz*zyx - 123879321 ...

Автор: Akina 21.11.2007, 11:58
ну и? конверти в строку и используй регулярку

Автор: Flap 21.11.2007, 12:14
дык а как использовать?
например xx*yy:
([11|22|33|44|55|66|77|88|99|00])(\d)+([11|22|33|44|55|66|77|88|99|00])
а как потом проверить, чтобы xx и yy были не равны?
P.S. Извините, я в регулярных не очень силен пока.

Автор: W4FhLF 23.11.2007, 16:44
Цитата(Flap @  21.11.2007,  12:14 Найти цитируемый пост)
например xx*yy:([11|22|33|44|55|66|77|88|99|00])(\d)+([11|22|33|44|55|66|77|88|99|00])


Какой ужасsmile Твоей маске соответствует регулярка: \b(\d)\1\d(?!\1)(\d)\2\b

Тебе следует подучить рег. выражения для решения этой задачи.

http://hunger.ru/releases/5



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)