对于用户名存在与否逻辑理解
2014-03-17 11:46
197 查看
今天老大让我修改用户中心用户名的js判断,因为对此问题和老大讨论了很久,我觉得有必要写下来让自己谨记。
之前的那个版本(称为第一版本)是用{"status":0,"msg":"可充值"},{"status":1,"msg":"用户名不能为空"},{"status":2,"msg":"用户名不存在"}。status为0时表示用户名存在可充值,status大于0时表示用户名不存在或格式错误不可充值。
而现在这个版本(称为第二版本)用{"exists":true,"status":0},{"exists":false,"status":0},{"status":1,"msg":"用户名不能为空"}。exists表示用户名是否存在,true为存在,false为不存在;status为0表示用户名是正确的(格式正确,没有进行正则判断,只要用户名不为空),status为1时表示用户名是错误的,将会返回错误信息(格式错误,这里只判断用户名为空的情况)。
第一版本代码一目了然,只要status为0时,就是正确的,可以提交的,反之亦然。如下所示:
第二版本逻辑判断更强大了,能容纳的情况更多了,代码如下所示:
这和第一版本唯一的区别就是判断中多了对json.exsits的判断,只有用户名存在,格式正确的情况下方可充值,否则显示错误信息。那如果是这样的逻辑判断,就可对用户注册进行类似判断了,只需满足用户名不存在,格式正确就可以注册了(这里需要验证用户名格式,可以和充值中心保持统一,让充值中心也判断格式。排除格式错误的用户名,毕竟这样的用户名可能还会存在),代码如下所示:
有没有发现这微妙的区别呢?只需将json.exsits判断和充值相反就ok了,这样就能达到json文件的格式统一化了,适用的情况就更多了,什么登录、注册、充值等等判断就不在话下了。
之前的那个版本(称为第一版本)是用{"status":0,"msg":"可充值"},{"status":1,"msg":"用户名不能为空"},{"status":2,"msg":"用户名不存在"}。status为0时表示用户名存在可充值,status大于0时表示用户名不存在或格式错误不可充值。
而现在这个版本(称为第二版本)用{"exists":true,"status":0},{"exists":false,"status":0},{"status":1,"msg":"用户名不能为空"}。exists表示用户名是否存在,true为存在,false为不存在;status为0表示用户名是正确的(格式正确,没有进行正则判断,只要用户名不为空),status为1时表示用户名是错误的,将会返回错误信息(格式错误,这里只判断用户名为空的情况)。
第一版本代码一目了然,只要status为0时,就是正确的,可以提交的,反之亦然。如下所示:
$.fn.valUserName = function(url,username){ var own = $(this); $.ajax({ url:url, data:"username="+username, dataType:'json', jsonp:'callback', jsonpCallback:'onJSONPCallback', success:function(json){ if(json.status == 0){ /* 表示用户名存在,可充值 */ own.siblings('.error-tips').text('可用'); }else if(json.status > 0){ /* 表示用户名不存在或格式错误,不能充值 */ own.siblings('.error-tips').text("用户名不存在或格式错误");//错误信息随便写 } } }); }
第二版本逻辑判断更强大了,能容纳的情况更多了,代码如下所示:
$.fn.valUserName = function(url,username){ var own = $(this); $.ajax({ url:url, data:"username="+username, dataType:'json', jsonp:'callback', jsonpCallback:'onJSONPCallback', success:function(json){ if(json.status == 0 && json.exsits){ /* 表示用户名存在,可充值 */ own.siblings('.error-tips').text('可用'); }else if(json.status > 0 || !json.exsits){ /* 表示用户名不存在或格式错误,不能充值 */ own.siblings('.error-tips').text("用户名不存在或格式错误");//错误信息随便写 } } }); }
这和第一版本唯一的区别就是判断中多了对json.exsits的判断,只有用户名存在,格式正确的情况下方可充值,否则显示错误信息。那如果是这样的逻辑判断,就可对用户注册进行类似判断了,只需满足用户名不存在,格式正确就可以注册了(这里需要验证用户名格式,可以和充值中心保持统一,让充值中心也判断格式。排除格式错误的用户名,毕竟这样的用户名可能还会存在),代码如下所示:
$.fn.valUserName = function(url,username){ var own = $(this); $.ajax({ url:url, data:"username="+username, dataType:'json', jsonp:'callback', jsonpCallback:'onJSONPCallback', success:function(json){ if(json.status == 0 && !json.exsits){ /* 表示用户名不存在,可注册 */ own.siblings('.error-tips').text('可用'); }else if(json.status > 0 || json.exsits){ /* 表示用户名存在或格式错误,不能注册*/ own.siblings('.error-tips').text("用户名不存在或格式错误");//错误信息随便写 } } }); }
有没有发现这微妙的区别呢?只需将json.exsits判断和充值相反就ok了,这样就能达到json文件的格式统一化了,适用的情况就更多了,什么登录、注册、充值等等判断就不在话下了。
相关文章推荐
- 对于《机器学习实战》中逻辑斯谛回归算法公式理解
- 关于validate验证用户名是否存在的简易理解
- 搞清楚局部和全部,搞清楚逻辑和物理,搞清楚这些对于理解一些组件的概念是非常有意义的:
- 对于初学者-正确理解业务逻辑
- 对于系统分析与设计理理思路,看看理解的对不对
- 思捷 XEN的网络逻辑 与其 locking-mode理解
- MSSQL 数据库:如何验证数据库中角色、用户名、登录名已存在
- day16对于缓冲池以及自定义框架的理解
- 对于golang的goroutine并发处理任务时的理解
- 对于线程的理解
- JQuery+AJAX异步刷新的一个基础应用(检验用户名是否已存在)
- 谈谈对于企业级系统架构的理解
- 一名工程师对于深度学习的理解-神经网络基础ANN
- 对于C/C++,java的volatile关键字的个人理解
- android webview对shouldOverrideUrlLoading的理解,对于重定向的url
- 对于STM32别名区的理解——转帖+优化
- 转:对于封装的理解
- 个人对于三层架构解决项目问题的理解
- 对于这篇文章,我该咋理解???
- 对于Intent和IntentFilter的理解记录