身份证号校验的 js

身份证号校验原理及JavaScript实现 在网站中,总有各种各样的表单,用户使用表单来向服务器发送数据,进行交互。 然而,代代相传的经验是,永远不要信任用户的输入,一定要对数据进行验证。如果使用不经验证的表单,轻则会有大量无效提交进入服务器,严重影响网站运行;重则招致XSS攻击~ 所以对输入进行验证是必要的。而为了减轻服务器的压力,除了密码正误等需要向数据库交互才能验证的输入之外,绝大部分输入的验证都应当在前端进行。其中。。 阅读详情
 function checkIdcard(idcard)
            {
                        
var area={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 idcard,Y,JYM;
                        
var S,M;
                        
var idcard_array = new Array();
                        idcard_array 
= idcard.split("");
                        
//地区检验
                        if(area[parseInt(idcard.substr(0,2))]==null) return 4;
                        
//身份号码位数及格式检验
                        switch(idcard.length){
                        
case 15:
                            
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
                            ereg
=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
                            } else {
                            ereg
=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
                            }
                            
if(ereg.test(idcard)) return 0;
                            
else return 2;
                            
break;
                        
case 18:
                            
//18位身份号码检测
                            //出生日期的合法性检查 
                            //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
                            //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
                            if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
                            ereg
=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
                            } else {
                            ereg
=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
                            }
                            
if(ereg.test(idcard)){//测试出生日期的合法性
                            //计算校验位
                            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
                            
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
                            
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
                            
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
                            
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
                            
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
                            
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
                            
+ parseInt(idcard_array[7]) * 1 
                            
+ parseInt(idcard_array[8]) * 6
                            
+ parseInt(idcard_array[9]) * 3 ;
                            Y 
= S % 11;
                            
if(idcard_array[17]=="x")
                            {
                               idcard_array[
17] = "X";
                            }
                            
//alert(Y);
                            //M = "F";
                            JYM = "10X98765432";
                            M 
= JYM.substr(Y,1);//判断校验位
                            if(M == idcard_array[17] ) return 0; //检测ID的校验位
                            else return 3;
                            }
                            
else return 2;
                            
break;
                        
default:
                            
return 1;
                            
break;
                        }
            }

 

2

 var Errors=new Array(
                    
"验证通过!",
                    
"身份证号码位数不对!",
                    
"身份证号码出生日期超出范围或含有非法字符!",
                    
"身份证号码校验错误!",
                    
"身份证地区非法!"
                    );
                
var result=checkIdcard(IDCardNoValue);
                
if(result!=0)
                
{
                           
//你的代码 here
                 }

 

3

''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' 将15位的身份证号码升级到18位
    ''' </summary>
    ''' <param name="IDCard15">15位的身份证号码</param>
    ''' <returns>18位的身份证号码</returns>
    ''' <remarks>
    '''     根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
    ''' 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码, 三位数字顺序码和一位数字校验码。
    ''' 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
    ''' 生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
    ''' 顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。
    ''' 顺序码的奇数分给男性,偶数分给女性。
    ''' 校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
    ''' 
    ''' 注意:这里没有考虑1900年以及之前出生的人的情况
    ''' 
    ''' </remarks>
    ''' <history>
    '''     [Hudan]    2005-8-8    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Function IDCard15to18(ByVal IDCard15 As String) As String

        
Dim IDCard17 As String

        
'将出生年扩展为4位,即在2位数的出生年前面加19 (这里没有考虑1900年以及之前出生的人的情况)
        'IDCard18 = IDCard15.Substring(0, 6) + "19" + IDCard15.Substring(6)
        IDCard17 = IDCard15.Insert(6, "19")

        
'计算校验码
        Dim code As Char
        code 
= GetCheckCode(IDCard17)

        
'返回18位身份证号码
        Return IDCard17 + code.ToString()

    
End Function

    
''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' 判断身份证号码的校验码是否正确
    ''' </summary>
    ''' <param name="IDCard18">18位身份证号码</param>
    ''' <returns>true表示验证码正确,否则表示验证码错误</returns>
    ''' <remarks>
    ''' 注意:
    ''' 此方法只是对验证码进行判断,不判断身份证号码其它部分的合法性.
    ''' 比如出现666666198013320014这样的号码,显然是非法的身份证号码
    ''' 666666的地区号目前是不存在的
    ''' 1980年没有13月,也没有32日
    ''' 但是它的校验码4却是正确的
    ''' </remarks>
    ''' <history>
    '''     [Hudan]    2005-8-8    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Function ValidCheckcode(ByVal IDCard18 As String) As Boolean

        
'参数IDCard18中的校验码
        Dim currentCode As Char
        currentCode 
= IDCard18.Chars(17)

        
'正确的验证码
        Dim ValidCode As Char
        ValidCode 
= GetCheckCode(IDCard18.Substring(0, 17))

        
Return ValidCode.Equals(currentCode)

    
End Function

    
''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' 根据身份证号码的前17位数字生成最后一位的校验码
    ''' </summary>
    ''' <param name="IDCard17">身份证号码的前17位数字</param>
    ''' <returns>校验码(身份证号码的第18位)</returns>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    '''     [Hudan]    2005-8-8    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Function GetCheckCode(ByVal IDCard17 As String) As Char

        
'按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码
        '公式如下:
        '∑(ai×Wi)(mod 11)
        'i----表示号码字符从右至左包括校验码在内的位置序号; 
        'ai----表示第i位置上的号码字符值; 
        'Wi----示第i位置上的加权因子,其数值依据公式Wi=2^(n-1)(mod 11)计算得出。 
        Dim num As Integer = 0
        
For i As Integer = 18 To 2 Step -1
            num 
+= CInt(IDCard17.Substring(18 - i, 1)) * (2 ^ (i - 1) Mod 11)
        
Next
        num 
= num Mod 11

        
'然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结果为10: 
        '∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10 
        '校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2 
        Dim checkcode As String
        
Select Case num
            
Case 0
                checkcode 
= "1"
            
Case 1
                checkcode 
= "0"
            
Case 2
                
'TODO: X是大写还是小写还未确定(刚好我的身份证的校验码是小写x,不知道大写X是否也可行)
                checkcode = "x"
            
Case Else
                checkcode 
= CStr(12 - num)
        
End Select

        
Return CChar(checkcode)

    
End Function

 

4下面是写成数据库的函数形式(原著不名,我在网上搜索到的都没有标明作者),其实知道了算法,写成SQL语句也不困难:

Create function getCheckCode(@SFZH char(18))
  
Returns char(1)
  
As
  
Begin
  
declare @r char(1)
  
declare @i int
  
if len(@SFZH) <> 18 
  
set @r = '?'
  
else
  
set @i = cast(substring(@SFZH,1,1) as int) * 7
  
+cast(substring(@SFZH,2,1) as int) * 9
  
+cast(substring(@SFZH,3,1) as int) * 10
  
+cast(substring(@SFZH,4,1) as int) * 5
  
+cast(substring(@SFZH,5,1) as int) * 8
  
+cast(substring(@SFZH,6,1) as int) * 4
  
+cast(substring(@SFZH,7,1) as int) * 2
  
+cast(substring(@SFZH,8,1) as int) * 1
  
+cast(substring(@SFZH,9,1) as int) * 6
  
+cast(substring(@SFZH,10,1) as int) * 3
  
+cast(substring(@SFZH,11,1) as int) * 7
  
+cast(substring(@SFZH,12,1) as int) * 9
  
+cast(substring(@SFZH,13,1) as int) * 10
  
+cast(substring(@SFZH,14,1) as int) * 5
  
+cast(substring(@SFZH,15,1) as int) * 8
  
+cast(substring(@SFZH,16,1) as int) * 4 
  
+cast(substring(@SFZH,17,1) as int) * 2
  
set @i = @i - @i/11 * 11
  
set @r = (case @i 
  
when 0 then '1' when 1 then '0' when 2 then 'X' when 3 then '9'
  
when 4 then '8' when 5 then '7' when 6 then '6' when 7 then '5'
  
when 8 then '4' when 9 then '3' when 10 then '2' else '/' end)
  
Return(@r)
  
End
JS严格校验身份证号 以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码 var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加权因子 var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份证验证位值.10代表X 阅读详情

相关推荐

基于Simulink的防空导弹六自由度弹道建模与仿真实战

本文详细介绍了基于Simulink的防空导弹六自由度弹道建模与仿真方法。通过分析导弹动力学原理、Simulink环境配置、气动力建模、推进与控制系统设计等关键环节,提供了一套完整的实战指南。文章特别强调了六自由度模型在防空导弹仿真中的重要性,并分享了常见问题排查与优化建议,为相关领域工程师提供实用参考。

apple5的专栏 868

工具类:身份证15-18位互转

工具类:身份证15-18位互转

竹子_bamboo的博客 6875

微软登录OAuth 2.0授权流程

OAuth 2.0是一个关于授权的开放网络标准,它允许第三方应用获取用户数据,是目前最流行的授权机制。微软身份平台支持OAuth 2.0授权码流程,使得客户端应用程序能够获得对受保护资源(如网络API)的授权访问。这一流程在保障用户数据安全的前提下,实现了应用的便捷登录与数据共享。当用户在一个支持OAuth 2.0的应用上,希望使用微软账号进行登录时,OAuth 2.0授权流程即被触发。

qq_36569837的博客 4088

身份证15位转18位(直接调用方法即可,简单方便!!!)

将新的17位身份证号码的每一位分别乘以对应的权重,并相加:4×7 + 2×9 + 0×10 + 1×5 + 0×8 + 6×4 + 6×2 + 4×1 + 0×6 + 1×3 + 2×7 + 3×9 + 4×10 + 0×5 + 1×8 + 2×4 + 3×2 = 182。在15位身份证号码前加上6位数字,即出生年份的前两位,地区编码的后两位,以及补全的两位数字,例如:19或20(以出生年份为准)+地区编码+补全的两位数字。将校验码加在新的17位身份证号码的最后一位,即得到18位身份证号码。

weixin_64314100的博客 5万+

博途PLC信号处理系列之卡尔曼滤波程序(Kalman Filter)

三菱系列PLC的卡尔曼滤波程序,可以参看下面这篇博文PLC滤波算法之卡尔曼滤波(kalmanFilter)代码+测试_RXXW_Dor的博客-优快云博客_plc滤波kalman滤波是采用递归的方法解决线性滤波问题,只需要当前的测量值input(西门子PLC里比如我们的模拟量通道AIW0值)和前一个采样周期的估计值(上一个时刻的滤波输出结果last_out)就能进行状态估计,需要的存储空间小,每一步的计算量小。下面我们通过程序代码一一给大家展示下。注意。......

RXXW_Dor的博客 3475

企业第三方应用开发概述_测试第三方应用对接企业_以及如何使用流程_Demo演示---企业微信开发002

那么第三方公司开发了应用,做为服务提供商,如果,一个企业想使用这个应用,我开发的这个应用的话,那么。其实就是给我们的应用,安装一个,使用他的企业,分配一共企业 允许这个企业使用我们的应用的功能,可以看到其实就是多了运营规范,因为,第三方应用,其实就相当于,是第三方公司开发的,程序,首先来看一下。然后再来看,这里我们选择这个公司,其实可以,选择到具体的,部门,或者是。然后我们使用一个企业的管理员账号进行,扫码,来授权,这个应用,可以。其实就是指定,我这个企业中,哪个部门,或者哪些员工,可以使用。

添柴程序猿的专栏 414

Excel如何快速将15位身份证号码转为18位

今天跟大家分享一下Excel如何快速将15位身份证号码转为18位 ​ 1.首先我们选中身份证号码单元格区域 2.点击【DIY工具箱】 3.点击【身份证】选择【15位身份证证升18位】 4.点击【确定】 5.最后选择一个合适的保存即可 6.完成效果如下图 ...

ffcell2016的博客 1万+

达梦数据库修改最大连接数

达梦数据库的最大连接数推荐配置与服务器内存有关。不应设置得过大,否则容易导致出现OOM。文件中整型的参数值。DSC环境下,除了特殊参数以外,其他参数值会在OK节点上同步。返回值:当前DM.INI文件中对应的参数值。功能说明:返回DM.INI文件中。:DM.INI文件中的参数名。

Sebastien23的博客 3336

将15位的身份证号码升级到18位的关键是校验码

今天在一个查询手机号码归属地的网站,发现还可以进行国内身份证号码验证查询,随便输入一个号码,居然说"该18位身份证号校验位不正确,您可以使用我们的15位升18位的小工具来验证",开始还以为它和公安部的数据库有联系,后来搜索了一下,发现网上关于介绍身份证号码验证码的文章还挺多的,参考了一下优快云上的一些帖子,改成VB.NET的函数,也许有一天会用上. '''-------------...

weixin_30786617的博客 364

【Mode】FDE 求解器工作流程

Lumerical---FDE(Finite Difference Eigenmode) Solver

u011699626的博客 4942

PCL 点云圆柱形邻域搜索【2026最新版】

圆柱形邻域搜索是KD-tree算法在点云数据处理中的扩展应用,在一些特定场景应用中具有无与伦比的优势。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 3451

身份证号码,格式校验:@IdCard(Validation + Hutool)

自定义一个用于校验身份证号码格式的注解@IdCard,能够和现有的Validation兼容,使用方式和其他校验注解保持一致(使用@Valid注解接口参数)。 使用`Hutool`提供的身份证格式校验方法。

宋冠巡的博客 5146

详解AUTOSAR:什么是AUTOSAR?(理论篇—1)

AUTOSAR是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,是对汽车技术开发一百多年来的经验总结。

不脱发的程序猿 1万+

JS身份证号校验

JS身份证号校验 法一: var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if(reg.test(idCard) === false) { Base.alert("身份证输入不合法"); return false; } 法二: if(idCard.length==18){ var idCard_string = JSON.stringify(idCard); var spstr = idCard_string.split("");

weixin_44439539的博客 6684

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

js [JavaScript] 正则 身份证号验证 最强身份证校验

JavaScript 最强身份证校验 // 验证身份证号码 function verifyIDCard(code) { //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码、出生日期、校验位验证 var city = { 11: "北京", 12: "天津", 13: "河...

lie_sun 2391

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

前端实用工具|JavaScript 身份证号合法性校验工具类全解析

别只用正则了!前端实现“身份证号完整校验”的正确姿势

yq_dxp1218的博客 1618

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JS 身份证号校验 年龄校验

// js 身份证号码校验 function isCnNewID(cid){       var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子       var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码       if(/^\d

hui12669的专栏 2248

JS严格校验身份证号码

JS校验身份证号码 /** * 身份证号码校验 */ onIDCardsValidation : function(e) { var idCard = e.value; if(e.value == ""){ e.isValid = true; } else if (e....

Abracadabra__的博客 1586

JS校验身份证号的合法性

前端表单中有身份证号的校验,下边是用JS来校验身份证号的合法性。 中国居民身份证号码编码规则   第一、二位表示省(自治区、直辖市、特别行政区)。   第三、四位表示市(地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码)。其中,01-20,51-70表示省直辖市;21-50表示地区(自治州、盟)。   第五、六位表示县(市辖区、县级市、旗)。01-18表示市辖区或地区(自治州、...

weixin_34219944的博客 410

Javascript身份证号校验

/***判断身份证号码格式函数*公民身份号码是特征组合码,*排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码*/function isChinaIDCard(StrNo){     StrNo = StrNo.toString();  if(StrNo.length == 15){           if(!isValidDate("19"+

技术学习与分享 1270

最牛js身份证号校验方法

 最牛js身份证号校验方法: function IdCodeValid(code){ //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码、出生日期、校验位验证 var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23

baiyongliang 8094

JavaScript身份证号校验算法

摘要:中国18位身份证号码校验遵循GB11643-1999标准,最后一位校验码通过前17位计算得出。核心算法包括:前17位数字分别乘以固定加权因子后求和,取模11得到余数,再按对应表转换为校验码(含字母X)。完整校验还需验证行政区划码、出生日期合法性及顺序码性别标识。提供JavaScript实现代码,包含基本校验函数和完整校验函数(含行政区划和日期验证),注意15位身份证需先升级,校验码X需大写。其他注意事项包括行政区划码范围和日期有效性验证。

蜚鸣的博客 1234

JS校验身份证号码

第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。 /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(

UsbFor的博客 265

JS前端实现身份证号码合法性校验(校验码校验)

在做项目过程中针对自然人数据提交到后端前一般是要进行身份证的合法性校验,当身份证号输入错误以便给于用户友好的提示(也可以根据身份证号同时校验表单中性别和出生日期等),验证主要是防止无效数据入库。本文在前端使用JavaScript实现15/18位身份证的合法性校验。

孑木文学的博客 1万+
上一篇: C#的相等性比较
下一篇: 登陆后保存用户信息的做法
dotnet90
博客等级 码龄23年 102粉丝 413原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值