瀏覽代碼

Merge pull request #2 from notcarl/master

Changed phone2numeric to use generator expressions instead of lambdas
Adrian Holovaty 13 年之前
父節點
當前提交
50b0984a8b
共有 1 個文件被更改,包括 6 次插入7 次删除
  1. 6 7
      django/utils/text.py

+ 6 - 7
django/utils/text.py

@@ -266,13 +266,12 @@ recapitalize = allow_lazy(recapitalize)
 
 def phone2numeric(phone):
     "Converts a phone number with letters into its numeric equivalent."
-    letters = re.compile(r'[A-Z]', re.I)
-    char2number = lambda m: {'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',
-        }.get(m.group(0).lower())
-    return letters.sub(char2number, phone)
+    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 u''.join(char2number.get(c, c) for c in phone.lower())
 phone2numeric = allow_lazy(phone2numeric)
 
 # From http://www.xhaus.com/alan/python/httpcomp.html#gzip