Какова цель метода phone2numeric в Django в библиотеке utils? - PullRequest
0 голосов
/ 08 апреля 2019

Django имеет следующую функцию phone2numeric(phone), определенную ниже:

def phone2numeric(phone):
    """Convert a phone number with letters into its numeric equivalent."""
    char2number = {
        'a': '2', 'b': '2', 'c': '2', 'd': '3', 'e': '3', 'f': '3', 'g': '4',
        'h': '4', 'i': '4', 'j': '5', 'k': '5', 'l': '5', 'm': '6', 'n': '6',
        'o': '6', 'p': '7', 'q': '7', 'r': '7', 's': '7', 't': '8', 'u': '8',
        'v': '8', 'w': '9', 'x': '9', 'y': '9', 'z': '9',
    }
    return ''.join(char2number.get(c, c) for c in phone.lower())

На первый взгляд, он в основном принимает число, например, 1-800 GALAXY, и превращает часть GALAXY в 425299, так что она становится 1-800 425299. Мне просто интересно, почему в Django реализована такая специфическая функция?

1 Ответ

0 голосов
/ 08 апреля 2019

Кажется, чтобы преобразовать текст номера телефона с мобильного макета в реальный номер телефона.Пример макета и демонстрация прилагаются ниже.

[![In \[14\]: def phone2numeric(phone):
    ...:         """Converts a phone number with letters into its numeric equivalent."""
    ...:         char2number = {
    ...:             'a': '2', 'b': '2', 'c': '2', 'd': '3', 'e': '3', 'f': '3', 'g': '4',
    ...:             'h': '4', 'i': '4', 'j': '5', 'k': '5', 'l': '5', 'm': '6', 'n': '6',
    ...:             'o': '6', 'p': '7', 'q': '7', 'r': '7', 's': '7', 't': '8', 'u': '8',
    ...:             'v': '8', 'w': '9', 'x': '9', 'y': '9', 'z': '9',
    ...:         }
    ...:         return ''.join(char2number.get(c, c) for c in phone.lower())
    ...: 

In \[15\]: phone = "ghab3wmded"

In \[16\]: phone2numeric(phone)
Out\[16\]: '4422396333'

In \[17\]:][1]][1] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...