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"/>(禁止输入空格及换行等无效数据)就好了。