说个不久前发生的事情,让人记忆深刻。
领导让统计最近几个月一个活动中参与活动的用户手机号,活动手机号是用户自己录入,并记录在数据库中的。从数据库中导出,大约有1万多条,用excel打开后,粗略浏览了一遍,才发现有很多错误的输入,大约100多条,约占总数的1%。
如果不是亲眼见到,真不知道输入一个手机号还能跑出这么多林林总总的错误,真是世界之大,无奇不有,截取一部分如下。
其实最开始时做了数据的校验的,但毕竟严格,用正则表达式
String regex = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
这里是判断手机号是否是电信的号头,并规定必须是11位数字。
但后来业务人员说有携号转网的情况,不能用号头来简单判断,所以就直接将这段校验去掉了。这样做的结果也就如图片中的那样,多数的靠谱用户中,总有那么一些特别的不靠谱。而这些不靠谱的用户,就是每次将你弄的焦头烂额的那些人。
所以在交互的设计过程中,永远都不要去相信用户,该做的校验,有多严格,就多严格。