diff -r f29e41c02921 django/contrib/localflavor/us/forms.py
--- a/django/contrib/localflavor/us/forms.py Sun Nov 13 19:28:43 2011 +0000
+++ b/django/contrib/localflavor/us/forms.py Sun Nov 13 15:07:51 2011 -0500
@@ -13,7 +13,7 @@
from django.utils.translation import ugettext_lazy as _
-phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$')
+phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-/\.]?(\d{3})[-\.]?(\d{4})$')
ssn_re = re.compile(r"^(?P\d{3})[-\ ]?(?P\d{2})[-\ ]?(?P\d{4})$")
class USZipCodeField(RegexField):
@@ -34,7 +34,7 @@
super(USPhoneNumberField, self).clean(value)
if value in EMPTY_VALUES:
return u''
- value = re.sub('(\(|\)|\s+)', '', smart_unicode(value))
+ value = re.sub('(\(|\)|/|\s+)', '', smart_unicode(value))
m = phone_digits_re.search(value)
if m:
return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3))
diff -r f29e41c02921 tests/regressiontests/localflavor/us/tests.py
--- a/tests/regressiontests/localflavor/us/tests.py Sun Nov 13 19:28:43 2011 +0000
+++ b/tests/regressiontests/localflavor/us/tests.py Sun Nov 13 15:07:51 2011 -0500
@@ -253,10 +253,15 @@
'312.555.1212': '312-555-1212',
'312.555-1212': '312-555-1212',
' (312) 555.1212 ': '312-555-1212',
+ '312/555.1212 ': '312-555-1212',
+ '312/555 1212 ': '312-555-1212',
+ '312/555-1212 ': '312-555-1212',
}
invalid = {
'555-1212': error_format,
'312-55-1212': error_format,
+ '312-555/1212': error_format,
+ '312/555/1212': error_format,
}
self.assertFieldOutput(USPhoneNumberField, valid, invalid)