将手机号码格式化为国际格式



用户可以使用以下任何格式输入电话号码:

  1. 07xxxxxxxxx

  2. 00447xxxxxxxxx

  3. 447xxxxxxxxx

  4. +447xxxxxxxxx

我需要帮助创建一个函数,该函数将采用上述任何格式的数字并将其作为国际格式返回 +447xxxxxxxxx .

这就是我到目前为止所拥有的

def _clean_mobile(mobile):
  import re
  if re.match('^+44', mobile):
       return mobile
  elif re.match('^44', mobile):
       return "+" + mobile

工作示例:http://ideone.com/ErL7Y4

def standardizePhoneNumber(mobile):
import re
    valid_prefixes = '[+447|447|00447|07]'
result = re.match('^' + valid_prefixes + '*([0-9]{9})$', mobile)
if result:
    return '+447' + result.group(1)
else:
    return None # invalid format
print standardizePhoneNumber('07111111111')
print standardizePhoneNumber('00447111111111')
print standardizePhoneNumber('447111111111')
print standardizePhoneNumber('+447111111111')
print standardizePhoneNumber('456789456')
import re
FORMATS = ['^07', '^00447', '^447', '^+447']
def sanitize(mobile):
    mobile = re.sub('s+', '', mobile) # strip whitespaces
    for format in FORMATS:
        if re.match(format, mobile):
            return re.sub(format + '(d{9})', '+447g<1>', mobile)
    return mobile
sanitize('00447123456789')   # +447123456789
sanitize('07123456789')      # +447123456789
sanitize('447123456789')     # +447123456789
sanitize('+44 712 345 67 89')# +447123456789
以下是

使用Python的format方法的简单解决方案:

numbers= ['07345216342', '00447345216342', '447345216342', '+447345216342'] #input
for i in numbers:
    print '+447{0:0=9d}'.format(int(str(i)[-9:]))

输出:

+447345216342
+447345216342
+447345216342
+447345216342

最新更新