0

假设我有一个电话号码,例如:

05395042123

我想将其转换为如下格式:

xxxx xxx xx xx

我要怎么做?有人有功能吗?

4

1 回答 1

11

手工很容易,只要你只有一种格式,这可能是最好的主意:

def phone_split(x):
  return ' '.join([x[0:4], x[4:7], x[7:9], x[9:]])

编辑:

还有一种更通用的方式:

def phone_split(x, format=[4,3,2,2]):
  parts = []
  reduce(lambda x, y: parts.append(x[:y]) or x[y:], format, x)
  return ' '.join(parts)

它使用append()副作用来累积结果并or满足 lambda 的单行要求。

编辑2:

我刚刚意识到您可能想在 Django 模板中使用它。如果是这种情况,您可能希望使用上面的代码来定义自定义模板标签并将其注册为简单的过滤器

于 2012-05-30T12:43:56.017 回答