2 u010628509 u010628509 于 2015.07.20 11:48 提问

淘宝那个账号可以是用户名、手机号、邮箱的登陆是如何实现的?

在不清楚这种登陆的账号是否存在时,是否要分别去验证有没有存在用户名或手机号或邮箱账号?又是如何实现的呢。

7个回答

tongyi55555
tongyi55555   2015.07.20 19:54
已采纳

我觉得是用户信息中有三个字段分别存储电话号码、用户名和邮箱,然后登陆的时候一个一个去匹配,有一个匹配上就终止。真正实现起来估计还是要做一些判断的,比如纯数字的就没有必要验证有邮箱的了。

caozhy
caozhy   Ds   Rxr 2015.07.20 23:15

正则表达式判断下,手机号是11位数字,邮箱包含@,除此之外,在数据库的用户名中判断

BabyOi
BabyOi 不一定,难道我的用户名不能加@符号?用户名好像没什么限制,11位符合手机格式数字貌似也可以。
28 天之前 回复
yuke198907
yuke198907   2015.07.20 11:52

第一种方法可以验证输入帐号类型,如果是字母+数字的那就是用户名,如果为纯数字的则为手机号,如果包含@符号的,则为邮箱等。
第二种方法那就是分别验证了。

u010628509
u010628509 你好,你说的第一种,我觉得不一定,有时候我喜欢用一些特殊符号如@来当用户名。还有没有什么注意点或方法呢?
2 年多之前 回复
xs_442
xs_442   2015.07.20 15:27

这个有多重处理方式,一种是根据输入的用户名首先判断是哪类用户,二种是分别匹配数据库中的电话号码、用户名、邮箱

u014294325
u014294325   2015.07.20 15:54

有多种方式可以实现
可以如上所说判断输入的是哪类
也可以多项都验证 可空 只要匹配了用户名邮箱电话中的一项就可以

zuishikonghuan
zuishikonghuan   2015.07.20 23:06

比方说,都存储一份,然后没次从数据库中查找,当然可以优化的了,先判断是用户名还是邮箱还是手机,然后逐步缩小搜索范围(甚至这些工作可以在客户端用前端脚本完成)然后服务器不就省事了。。

notfindjob
notfindjob   2015.07.25 18:24

输入校验:全数字11位、数字+字母、数字字母中间+@

Csdn user default icon
上传中...
上传图片
插入图片