吕展辉

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、身份证号的认证并转化为十六进制:

 var isIDCard1 = new Object();
 var isIDCard2 = new Object();
 //身份证正则表达式(15位)
 isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
 //身份证正则表达式(18位)最后一位可以是字母X或x
 isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X|x])$/;
 var card = document.getElementById("wcard").value;
 // 转化为十六进制
 if(isIDCard1.test(card) || isIDCard2.test(card)){
  encodeURI(card);
  alert("ID:" + card);
  //转化X、x为A、B
  card = card.replace(/X/g, "A");
  card = card.replace(/x/g, "B");
  
  j=card.length;
  //不够32位,补F
  if(card.length < 32)
  {
    for(var i=0; i< 32 - j; i++)
   {
    card += "F";
   }
  }

2、flex中不支持正则表达式的概括型,如:\S

注:\S其实就是^ \f\n\r\t\v

在flex中使用如下时,是错误的<s:TextInput id="src" restrict="^S"/>

改成<s:TextInput id="src" restrict="^ \f\n\r\t\v"/>(禁止输入空格及换行等无效数据)就好了。

posted on 2014-03-07 19:14  吕展辉  阅读(396)  评论(0编辑  收藏  举报