作者: Mr.Li

  • js 精确校验身份证号码|地址编码|出生日期|校验位验证|优化10月份身份校验

    划重点:校验身份证的代码虽然很多平台有发布,但是估计只有10月份的开发者,才能一把测试出Bug。因为网上有的代码,正则校验规则忽略了10月份。
    //身份证号合法性验证 
    //支持地址编码、出生日期、校验位验证
            function IdentityCodeValid(code) { 
                var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
                var tip = "";
                var pass= true;
                //验证身份证格式(6个地区编码,8位出生日期,3位顺序号,1位校验位)
                if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
                    tip = "身份证号格式错误";
                    pass = false;
                }
                
               else if(!city[code.substr(0,2)]){
                    tip = "地址编码错误";
                    pass = false;
                }
                else{
                    //18位身份证需要验证最后一位校验位
                    if(code.length == 18){
                        code = code.split('');
                        //∑(ai×Wi)(mod 11)
                        //加权因子
                        var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
                        //校验位
                        var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
                        var sum = 0;
                        var ai = 0;
                        var wi = 0;
                        for (var i = 0; i < 17; i++)
                        {
                            ai = code[i];
                            wi = factor[i];
                            sum += ai * wi;
                        }
                        var last = parity[sum % 11];
                        if(parity[sum % 11] != code[17]){
                            tip = "校验位错误";
                            pass =false;
                        }
                    }
                }
                if(!pass) alert(tip);
                return pass;
            }

    附:

    1.中华人民共和国第二代身份号码标准(GB11643-1999)

    2.第二代居民身份证号码的校验码计算模型

     

  • thinkcmf5 后台搜索分页保持分页条件

     $where = array();
     $keyword = "";
     $data = $this->request->param();
     if(!empty($data['keyword'])){
        $where['username|email|first_name|type|last_name|country|city'] = array('like','%'.$data['keyword'].'%');
        $keyword = $data['keyword'];
      }
      $resData = Db::name('subscription')->where($where)->order('createtime desc')->paginate(10);
    
      $this->assign('resData',$resData);
      $this->assign('keyword',$keyword);
      $resData->appends($data);// 在 render 前,使用appends方法保持分页条件
      $this->assign('page',$resData->render());//单独提取分页出来
      // 渲染模板输出
      return $this->fetch();
    
    
  • 爱心时钟HTML5

    插件描述:就俩字‘炫酷’…

     

  • js和css3变形表单选择飞来动画

    插件描述:HTML5 3D卷纸表单填写动画特效是一款当点击开始选购书单的按钮,书单从右边以放大的形式旋转出现,包括每一条颜色的渐变,勾选框的过度动画。

     

  • Premium Layers HTML电子名片简历模板

    插件描述:8个漂亮的皮肤 100%的响应 神奇的CSS3效果动画 优化代码 简单和易于使用的定制 滤过性的组合 谷歌地图 字体的图标 整洁的设计 Google Web字体

     

  • 一款大气炫酷的单机游戏公司网站模板

    插件描述:一款适合游戏娱乐公司做大气炫酷的单机游戏网站

     

  • 超个性动画版本的个人简历animationResume

    插件描述:超个性动画版本的个人简历,采用markedjs完成的简约个性动画简历
    插件使用方法:替换简历中个人信息的文件 ==> js/code.js

     

  • 模拟Windows窗口jQuery UI插件

    插件描述:模拟Windows窗口jQuery UI插件是一款类似windows窗口,可以对窗口进行最大化,最小化,拖动等操作

  • WordPress中点击自定义及小工具菜单出现空白的解决方法

    这个错误一般是发生在安装了新的主题、插件,或是升级到了新的版本。打开wordpress博客就是一个空白页面。在控制面板那里也会遇到这样的情况,这样就没有办法进入到控制面板了。再者是点击‘外观’模块下自定义或小工具菜单,出现空白,并且无报错!

    可能原因

    这个问题,一般是在进行以下操作后出现的:

    1.更换新主题

    2.安装或升级插件

    3.升级Wordpress版本

    问题的根源在于 主题、插件和wordpress自身 三者之间的不兼容:

    1.某些主题集成了很多强大的功能,可能与现在使用的插件冲突

    2.某些插件版本或主题不兼容你现在使用的Wordpress版本

    解决方法1:通过 FTP 重新命名当前安装的主题。

    把当前安装的主题文件夹重命名的话,会强制 WordPress 自动选择默认的主题,然后就可以正常载入了。

    1. 通过 FTP 找到 wp-contents/themes 文件夹。

    2. 重命当前安装的主题文件夹。如:把 twentytwenty 命名为 twentytwenty-temp

    3. 登录到你的 WordPress 后台。

    4. 检查一下你的主题和你现在运行的 WordPress 是否兼容。

    5. 检查一下你的主题是否包含不能够被执行的代码。

    解决方法2.:通过 FTP 重设插件文件夹

    1. 通过 FTP 找到 wp-contents 文件夹。

    2. 把 plugins 文件夹重命名为 plugins-temp

    3. 在同一目录下创建一个新的文件夹为 plugins

    4. 再次登录一下 WordPress 控制面板。

    5. 把你的插件从 plugins-temp 移到 plugin ,然后逐个重新激活。

    6. 检查一下是否有插件与当前的 WordPress 不兼容。

     

  • Python之如何写嵌套代码

    if嵌套由于涉及多个条件判断,并且是条件套条件的判断,所以为了理清逻辑,我们可采用扒洋葱大法写if嵌套

    蜘蛛侠彼得·帕克也仅仅是个18岁的高中生。他曾只顾忙着在街头巷尾当平民英雄,结果在期末历史考试里只考了26分,荣获“学渣”提名。

    成绩评价规则
    考试成绩评价规则:
    
    1. 如果成绩大于等于60分,就是及格,在此前提下:
    (1)如果成绩大于等于80分,属于优秀范围;
    (2)否则,属于一般范围。
    
    2. 如果成绩小于60分,就是不及格,在此前提下:
    (1)如果成绩小于30分,平时太不认真,属于学渣了;
    (2)如果成绩大于等于30分,那么,至少还能抢救一下。

    用“彼得·帕克的历史成绩”举例,第一步就要搞定最外层那张皮,将最基础的命令和条件写出来。

    那么,我们的思考逻辑应该是这样(1)把彼得·帕克26分的历史成绩赋给变量historyscore;(2)用if…else写最基础判断条件如果historyscore>=60时,打印你已经及格,否则,打印不及格;(3)用print()输出程序结束

    第一层皮
    historyscore=26
    #赋值语句:为历史成绩赋值
    
    if historyscore>=60:
        #条件:当历史成绩大于等于60时:
    
        print('你已经及格')
    
    else:
        #条件:当历史成绩小于60时
    
        print('不及格')
        #结果:输出不及格的结果
    
    print('程序结束')
    #打印最终结果

    第二步,在“第一层皮”里装东西。也就是在条件【historyscore>=60】下,增加额外条件。

    其中,额外条件1:当历史成绩大于80分,显示结果你很优秀;额外条件2:当历史成绩在60到80分之间,显示结果:你只是一般般

    下面,请你先瞄一眼正确的代码,并注意我是怎样安排额外条件的代码的。

    第二步
    historyscore=26
    #赋值语句:为历史成绩赋值
    
    if historyscore>=60:
        #条件:当历史成绩大于等于60时
    
        print('你已经及格')
        #结果:输入及格的结果
    
        if historyscore>=80:
            #条件:当历史成绩大于等于60,且历史成绩大于等于80
    
            print('你很优秀')
            #结果:输出你很优秀的结果
    
        else:
            #条件:当历史成绩大于等于60,且小于80时
    
            print('你只是一般般')
            #结果:输出你只是一般般的结果
    
    else:
        #条件:当历史成绩小于60时
    
        print('不及格')
        #结果:输出不及格的结果
    
    print('程序结束')
    #打印最终结果

    最后一步,你要为另一个大条件else增加额外条件了!

    请你以下方代码框中的代码为基础,在else底下增加两个额外条件。

    其中,额外条件1:当历史成绩小于60,同时还小于30时,输出结果学渣;额外条件2:当历史成绩小于60,但大于等于30时,输出结果还能抢救一下

    最后一步

    historyscore=26

    if historyscore>=60:
        print('你已经及格')

        if historyscore>=80:
            print('你很优秀')

        else:
            print('你只是一般般')

    else:
        print('不及格')
        if historyscore<30:
            print('学渣')
        else:
            print('还能抢救一下')

    最后的最后,我们来总结if条件判断: