CRM的dev(八)--特殊情况下的手机号校验

近期再写CRM客户关系系统,有一个很特殊的业务需求,在非当前跟踪人编辑别人的有效期过期的信息时候,只能编辑客户经理的选项,但是手机号信息对于登录用户来说是脱敏的,脱敏后的手机号显示成:137********,很显然保存的时候手机号校验是过不去的,具体应该怎么做呢?
分析:
第一种方法:(不推荐)
一开始想着,手机校验的时候,手机号可以包含和0-9的数字,这样虽然可以保存下来信息,但是列表显示的时候,就真的是显示手机号137*******,注意此时不是脱敏信息,而是由于我们设置的手机校验后面的8位数字可以包含*,那么此时的手机校验的正则表达式应该写成:

$.extend($.fn.validatebox.defaults.rules, {    
            phoneNum: { //验证手机号   
            validator: function (value) {
                    //可编辑的手机号码输入框需要进行校验
                return  /^1(3|4|5|7|8)[0-9]{1}[\*0-9]{8}$/.test(value);
         },
         message: '格式不正确,请输入正确的11位手机号码.',
     }  

因此,我们看到扩展函数中的有个字段:phoneNum
这个字段其实不是瞎写的,对应JSP页面的input时输入框的中validType的值,

<input id="customerEditLinkmanPhone" 
       name="linkmanPhone"    
       required="true"           
       data-options="prompt:'联系人电话'"                                     validType="phoneNum"
       style="width:100%">

然后这种写法虽然可以教研通过但是并不是非常的推荐和合适!
第二种方法:(推荐)
so,需要校验的时候进行条件判断,那么由于只能修改客户经理,那么手机号显示脱敏,不能被编辑,所以,它的状态是制度状态,所以想要通过保存,不进行校验,也就是在手机号娇艳的时候添加条件进行制度状态的判断,如果是只读,那么久不进行校验,如果不是,那么就进行校验···
具体的JS中手机号校验代码判断如下:

$.extend($.fn.validatebox.defaults.rules, {    
            phoneNum: { //验证手机号   
            validator: function (value) {
                //只读属性的手机号码,不校验
    if(($('#customerEditLinkmanPhone').textbox('options').readonly)==true){
                    return true;
                }else{
                    //可编辑的手机号码输入框需要进行校验
                    return  /^1(3|4|5|7|8)\d{9}$/.test(value);
                }
         },
         message: '格式不正确,请输入正确的11位手机号码.',
     }  

此种方法非常好用,感谢帮助过我的所有亲们,小生会继续加油哒!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值