jQuery正则校验

银行卡号

//验证银行卡号,bankno为银行卡号
function luhnCheck(){
var bankno = $.trim($("#bankNoInp").val());
  var lastNum=bankno.substr(bankno.length-1,1);//取出最后一位(与luhn进行比较)

  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);
 
  //计算luhn值
  var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;        
  var luhn= 10-k;
 
  if(lastNum==luhn){
    console.log("验证通过");
      return true;
  }else{
    alert("银行卡号必须符合luhn校验");
      return false;
  }        
}

银行卡号位数限制

regs = /^(\d{16}|\d{19})$/;

var strBin = "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";

校验银行卡号案例

//新增银行卡
function addBank(){
var bankNo = $.trim($("#bankNoInp").val());
var bankName = $.trim($("#bankNameInp").val());
var bankAttr = $.trim($("#bankAttrInp").val());
reg = /^[\u4E00-\u9FA5]{2,10}$/;
regs = /^(\d{16}|\d{19})$/;
var strBin = "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99"; if(bankNo.length <= 0 ){
alert("银行卡号不能为空!");
}else{
// 银行卡号不为空时,判断银行卡号是否正确
if( !regs.test(bankNo) || strBin.indexOf(bankNo.substring(0, 2)) == -1 || !luhnCheck(bankNo) ){
alert("银行卡号输入错误!");
}else{
// 银行卡号输入正确时,判断开户名,开户银行是否为空
if(bankName == "" || bankAttr == ""){
alert("开户名与开户银行不能为空!");
}else{
// 开户行不为空时,判断开户行是否合法
if(!reg.test(bankName) || !reg.test(bankAttr)){
alert("请输入合法开户名与开户银行!");
}else{
var str = "1";
}
}
}
if(str == "1" ){
$.ajax({
type:'post',
url:'../BankController/insertBank.action',
dataType:'Json',//服务器返回的数据类型 可选XML ,Json jsonp script html text等
data:{
"bankNo": bankNo,
"bankName": bankName,
"bankAttribute": bankAttr
},
success:function(msg){
if(msg.success){
alert("添加帐号成功!");
getData();
hideDialog();
}else{
alert(msg.error);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
      sessionTimeout(XMLHttpRequest, textStatus, errorThrown);
      }
})
}
}
}

只允许输入汉字以及汉字输入位数

//2-10位
reg = /^[\u4E00-\u9FA5]{2,10}$/;

jQuery正则校验的更多相关文章

  1. RegExp正则校验之Java及R测试

    前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用 ...

  2. java_method_正则校验

    /** * * @Title: validadeRegExp * @Descrption : TODO (正则校验) * @param regExp * @param obj * @return * ...

  3. 正则校验:微信号,qq号,邮箱

    java判断微信号.手机.名字的正则表达 - willgos - 博客园https://www.cnblogs.com/solossl/p/5813106.html 微信号正则校验,qq正则,邮箱正则 ...

  4. 最全,可直接用的一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等。

    一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等. // 判断邮箱 isValid = [text isValidEmail]; // 判断手机 ...

  5. 校验总结:校验是否是中英文等等(1.正则校验 2.hibernate volidator)

    1.正则校验 import java.util.regex.Matcher;import java.util.regex.Pattern; public class Validation { //-- ...

  6. js前台传数组,java后台接收转list,前后台用正则校验

    前台,传参数时,将数组对象转换成json串,后台java收到后用 JSONArray.fromObject 转成集合. 前台js:var params = {"FileNameList&qu ...

  7. Django的form组件——正则校验

    from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...

  8. jQuery正则:电话、身份证、邮箱简单校验

    if (!(/^1[3,5,6,7,8,9]\d{9}$/).test(e.detail.value.data_phone)) { wx.showToast({ title: '请输入有效11位手机号 ...

  9. Jquery客户端校验——jquery.validate.js

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...

随机推荐

  1. 浏览器性能监控performance使用

    浏览器中有一个performance的性能监控,平时我也没有用到,接手了一个大数据的项目,发现页面打开的比较慢,使用浏览器的performance分析可以看到各个步骤花费的时间. 关于项目的性能分析如 ...

  2. Nim博弈&&POJ1704

    Nim博弈 题目 有n堆物品,两人轮流取,每次取某堆中不少于1个,先取完者胜. 分析 经典问题,该问题的策略也成为了许多问题的基础. 要判断游戏的胜负只需要异或运算就可以了,有以下结论: $a_1 \ ...

  3. XXE(外部实体注入攻击)

    利用XXE漏洞可以进行拒绝服务攻击.文件读取.命令代码执行.SQL(XSS)注入.内外扫描端口和入侵内网站点等,内网探测和入侵是利用XXE中支持的协议进行内网主机和端口的发现,可以理解为使用XXE进行 ...

  4. PHP函数file_get_contents()使用 https 协议时报错:SSL operation failed

    场景: file_get_contents() 函数是用于将文件的内容读入到一个字符串中,是读取文件内容常用的函数之一. 但是有时在服务器上使用file_get_contents() 函数请求http ...

  5. fork,vfork

    转自 http://blog.csdn.net/todd911/article/details/14062103 1.fork函数 一个现有的进程可以调用fork函数创建一个新的子进程. #inclu ...

  6. nginx 访问控制之 http_referer

    在rewrite时,曾经用过该变量,当时实现了防盗链功能. 其实基于该变量,我们也可以做一些特殊的需求. 示例: 背景:网站被黑挂马,搜索引擎收录的网页是有问题的,当通过搜索引擎点击到网站时,却显示一 ...

  7. 分享一个Python脚本--统计redis key类型数据大小分布

    概述 今天主要介绍怎么统计redis key类型数据大小分布. 原理:使用redis命令: scan.pipline.type 和 debug object 来得到 redis key 信息. 脚本 ...

  8. 【Beta】Phylab 发布说明

    Phylab Beta阶段发布说明 一.发布地址 Phylab 二.新功能 1. Markdown(Html)报告生成 在生成报告界面可以选择报告生成方式:Latex或Markdown模板.目前支持M ...

  9. leetcode:146. LRU缓存机制

    题目描述: 运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 ( ...

  10. vue+elementui项目打包后样式变化问题

    博主刚刚解决了index.html空白问题,刚打开项目页面又发现了样式出现了大问题,样式与开发版本有很大不同,有些样式没有生效.利用搜索引擎,找到了问题所在以及解决办法:main.js中的引入顺序决定 ...