手機號碼、電子郵箱、身份證、銀行卡正則驗證

来源:http://www.cnblogs.com/gxp69/archive/2017/07/02/7106280.html
-Advertisement-
Play Games

手機號碼: 電子郵箱: 身份證: 銀行卡: ...


手機號碼:

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; 

電子郵箱:

/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/i

身份證:

var isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
var isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;

銀行卡:

function luhmCheck(bankno){
        var lastNum=bankno.substr(bankno.length-1,1);//取出最後一位(與luhm進行比較)

        var first15Num=bankno.substr(0,bankno.length-1);//前15或18位
        var newArr=new Array();
        for(var i=first15Num.length-1;i>-1;i--){    //前15或18位倒序存進數組
            newArr.push(first15Num.substr(i,1));
        }
        var arrJiShu=new Array();  //奇數位*2的積 <9
        var arrJiShu2=new Array(); //奇數位*2的積 >9

        var arrOuShu=new Array();  //偶數位數組
        for(var j=0;j<newArr.length;j++){
            if((j+1)%2==1){//奇數位
                if(parseInt(newArr[j])*2<9)
                    arrJiShu.push(parseInt(newArr[j])*2);
                else
                    arrJiShu2.push(parseInt(newArr[j])*2);
            }
            else //偶數位
                arrOuShu.push(newArr[j]);
        }

        var jishu_child1=new Array();//奇數位*2 >9 的分割之後的數組個位數
        var jishu_child2=new Array();//奇數位*2 >9 的分割之後的數組十位數
        for(var h=0;h<arrJiShu2.length;h++){
            jishu_child1.push(parseInt(arrJiShu2[h])%10);
            jishu_child2.push(parseInt(arrJiShu2[h])/10);
        }

        var sumJiShu=0; //奇數位*2 < 9 的數組之和
        var sumOuShu=0; //偶數位數組之和
        var sumJiShuChild1=0; //奇數位*2 >9 的分割之後的數組個位數之和
        var sumJiShuChild2=0; //奇數位*2 >9 的分割之後的數組十位數之和
        var sumTotal=0;
        for(var m=0;m<arrJiShu.length;m++){
            sumJiShu=sumJiShu+parseInt(arrJiShu[m]);
        }

        for(var n=0;n<arrOuShu.length;n++){
            sumOuShu=sumOuShu+parseInt(arrOuShu[n]);
        }

        for(var p=0;p<jishu_child1.length;p++){
            sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]);
            sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]);
        }
        //計算總和
        sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2);

        //計算Luhm值
        var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;
        var luhm= 10-k;

        if(lastNum==luhm){
            return true;
        }
        else{
            return false;
        }
    }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 /*css 初始化 */ 2 html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; } 3 fieldset, img,i... ...
  • 1 js首先需要的函數 2 3 window.onload = function () { 4 function $(id){ 5 return document.getElementById(id); 6 } 7 function $arr(array){ ... ...
  • cursor 1.定義和用法 cursor 屬性規定要顯示的游標的類型(形狀)。 該屬性定義了滑鼠指針放在一個元素邊界範圍內時所用的游標形狀(不過 CSS2.1 沒有定義由哪個邊界確定這個範圍)。 2.屬性 需使用的自定義游標的 URL。 註釋:請在此列表的末端始終定義一種普通的游標,以防沒有由 U ...
  • [1]使用方法 [2]基本用法 [3]原理分析 [4]擴展用法 ...
  • 多態(Polymorphism)按字面的意思就是“多種狀態”,同樣的行為(方法)在不同對象上有不同的狀態。在OOP中很多地方都要用到多態的特性,比如同樣是點擊滑鼠右鍵,點擊快捷方式、點擊桌面空白處、點擊任務欄等彈出的菜單都是不同的。 ...
  • 很多人在進入學習前端的時候(包括我自己),除了選擇學習合適的技術,還需要一個得(自)心(己)應(喜)手(歡)的開發工具,一個得心應手的開發工具除了可以令你的效率大大提高,也可以令你在寫代碼的時候,心情舒暢 O(∩_∩)O。 我的第一個前端開發工具就是Sublime Text ,說一說我對它的理解吧。 ...
  • 在字面量方式中,我們//之間包起來的所有的內容都是元字元,有的具有特殊意義,大部分都是代表本身含義的普通的元字元 為瞭解決上述想在正則裡面加上一個變數這樣的需求,我們只能使用實例創建的方式了 var reg = new RegExp("^\\d+"+name+"\\d+$","g") 字面量方式和實 ...
  • function busUpLoadImg(postUrl,id) { .......//省略部分不用修改 uploader.on('uploadSuccess', function(file) { $('#' + file.id).addClass('upload-state-done'); //... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...