随机取名出现了屏蔽字
在测试随机取名功能的时候,出现过这样一个Bug:随机出来的名字里边有屏蔽字
。
随机名字的生成是由前端负责的,从两个名字库A,B中,各随机出一个名字,组合起来。
如名字库A中有:傲慢的,愤怒的,早安,晚安
名字库B中有:南希,萝莉,爱丽丝
某次随机的结果是:晚安南希,中招了,安南
是屏蔽字,于是确认取名的时候,后端后端校验提示有屏蔽字符。
解决方式
方式1:前端在每次随机出名字后,使用前端的屏蔽字库检测名字是否含有屏蔽字,含有则重新随机一个。
方式2:要从根源上解决问题的话,我们需要保证,从名字库中随机到的名字,不会出现屏蔽字。
解决思路:
- 穷举所有可能被随机出的名字。
- 对每个名字,一一进行屏蔽字校验。
- 汇总出现屏蔽字的名字,交由策划修改。
非常简洁的思路~
大概计算了下,有30W个名字吧,这种事情,当然不能手工来做,可以用python实现一个检测的小工具。
检测函数:
|
|
部分检测结果
晚安__拉里 出现了屏蔽字:安拉
剑神__汉纳 出现了屏蔽字:神汉
处女座__安 出现了屏蔽字:处女
午夜的__安 出现了屏蔽字:午夜