如何在Django上制作电话号码掩码?

v09wglhw  于 2022-12-14  发布在  Go
关注(0)|答案(2)|浏览(92)

比如说我有一个电话号码,比如:
05395042123
我想将其转换为如下格式:
xxxx xxx xx xx
我要怎么做?谁有函数?

ia2d9nvy

ia2d9nvy1#

手工操作非常简单,如果只有一种格式,这可能是最好的方法:

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模板中使用它。如果是这样的话,你可能想使用上面的代码来定义一个custom template tag,并将其注册为一个简单的过滤器。

p5cysglq

p5cysglq2#

def mask_mobile_number(self,obj):
  return "XXXXXX{}".format(str(obj.mobile_number)[6:])

相关问题