(1)身份证号码验证
身份证号码是18位数字,根据GB11643-1999《公民身份证》定义制作;由17位本体码和一位校验码组成。
身份证号码前6位是地址码,按(GB/T2260)规定执行。
接着8位是年、月、日。
后三位是同年同月同日出生的人的顺序号,奇数表示男,偶数表示女。
最后一位是校验码。
因此正则表达式验证模式为:/^d{17}(d|X)$/。

<html>

<head>

<title>用正则表达式验证身份证的合法性</title>

</head>

<body bgcolor="#FFCC99">

<form action="" method="get" name="myForm">

<table width="400" border="0" align="center" cellspacing="0" cellpadding="0">

<caption align="center"><h2>验证身份证的合法性</h2></caption>

<tr>

<td width="214" align="right">身份证号:</td>

<td width="186">

<input type="text" name="cardid" size="18" />

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input name="check" onclick="checkCard()" type="button" id="check" value="检测身份证号" />

<input name="reset" type="reset" id="reset" value="重置" />

</td>

</tr>

</table>

</form>

</body>

</html>

<script type="text/javascript">

//验证身份证号

var vcity={ 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:"国外"};

function checkCard(){

var isum=0;

var re=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\ d{3}[A-Z])$/; var cardidstr=document.getElementById('cardid').value;

if (cardidstr.length>0 && cardidstr!=null) {

if(!re.test(cardidstr)) {

alert("身份证号不符合要求!");

return false;

    }

    //检查地址是否符合要求

    if(vcity[parseInt(cardidstr.substr(0,2))]==null) {

      alert("身份地址不符合要求!");

      return false;

    }

    //出生日期

  Sbirthday = cardidstr.substr(6,4) + "-" + cardidstr.substr(10,2)+"-"+ cardidstr.substr(12,2);

    alert('身份证地址:'+vcity[parseInt(cardidstr.substr(0,2))]+"\n"

    +"出生日期:"+sbirthday+"\n"+"性别:"+(cardidstr.substr(16,1)%2?"男":"女"));

  }

  else{

    alert("请输入身份证号!");

  }  

}

</script>

(2)普通注册验证

校验用户姓名:只能输入1~30个以字母开头的字符串。

校验密码:只能输入6~20个字母、数字、下画线。

function isTrueName(s)

{

var patrn=/^[a-zA-Z]{1,30}$/;

if (!patrn.exec(s)) {

return false;

return true;

}

function isPasswd(s)

{

var patrn=/^(\w){6,20}$/;

if (!patrn.exec(s)) {

return false;

}

return true ;

}

常见的验证方式

(1)校验是否全由数字组成。

function isDigit(s)

{

var patrn=/^[0-9]{1,20}$/;

if (!patrn.exec(s)) {

return false;

return true;

}

(2)校验用户姓名:只能输入1~30个以字母开头的字符串。

function isTrueName(s)

{

var patrn=/^[a-zA-Z]{1,30}$/;

if (!patrn.exec(s)) {

return false;

return true;

}

(3)校验密码:只能输入6~20个字母、数字、下画线。

function isPasswd(s)

{

var patrn=/^(\w){6,20}$/;

if (!patrn.exec(s)) {

return false;

}

return true ;

}

(4)校验普通电话、传真号码:可以以“+”开头,除数字外,可含有“-”。

function isTel(s)

{

var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;

if (!patrn.exec(s)) {

return false ;

}

return true;

}

(5)校验IP。

function isIP(s)

{

var patrn=/^[0-9.]{1,20}$/;

if (!patrn.exec(s)) {

return false;

}

return true

}

String对象中的正则表达式的更多相关文章

  1. js String对象中常用方法小结(字符串操作)

    1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...

  2. String对象中常用的方法

    String对象中常用的方法   1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始 ...

  3. js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf

    var Cts = "bblText";   if(Cts.indexOf("Text") > 0 ) {     alert('Cts中包含Text字符 ...

  4. 【Java面试题】15 String s="Hello"; s=s+“world!”;这两行代码执行后,原始的String对象中的内容到底变了没有?String与StringBuffer的超详细讲解!!!!!

    1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类.一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,Str ...

  5. 将变参格式化到一个string对象中

    该小程序演示了变参的用法.它的功能是,仿照sprintf,将变参内容保存到string中. /* 功能说明: 仿照sprintf,将字符串格式化到一个string对象中. 实现方式: 该例子主要是用来 ...

  6. 005 String s = "Hello";s = s + " world!";执行这两行代码执行后,原始的 String 对象中的内容到底变了没有?

    原始的String对象中的内容没有改变成“Hello world”. 1.原因 因为在Java中String类被设计成不可改变的类,所以String类的所有对象都是不可变的.第一句代码中,s(存储在栈 ...

  7. String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

    没有.因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象.在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行 ...

  8. 用于string对象中字符截取的几种函数总结——语法、参数意义及用途举例

    1. charAt():返回指定位置的字符. 语法:stringObject.charAt(index) 参数意义:index  必需,指字符在字符串中的下标.需要注意的是,字符串中第一个字符的下标是 ...

  9. [转载]js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf

    var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包含Text字符串'); }

随机推荐

  1. linux下有线网卡出现ADDRCONF(NETDEV_UP): eth0: link is not ready的解决方法

    一.背景 2018年5月24日,笔者的pc已经连续运转两天了,突然要使用有线网卡,却发现有线网卡无法正常工作,于是查看了一下内核日志: r8169 0000:05:00.0 eth0: link do ...

  2. POJ 2823 Sliding Window(单调队列 || 线段树)题解

    题意:求每个长度为k的数组的最大值和最小值 思路: 1.用线段树创建维护最大值和最小值,遍历询问,简单复习了一下...有点手生 2.单调队列: 可以看一下详解 单调队列顾名思义就是一个单调递增或者递减 ...

  3. mysql数据库分库分表(Sharding)

    mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...

  4. dp问题 -挑战例题 2017-7-24

    01 背包 题意: 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数).求背包能够容纳的最大价值. f[i] ...

  5. C#学习笔记(二):变量、数据类型和运算符

    变量.数据类型       给变量赋值,如果想指定float,在数字后面加上F/f:如果想指定decimal,在数字后面加上m.   0-9:48-57 A-Z:65-90 a-z:97-122   ...

  6. .Net Core集成Office Web Apps(一)

    最近开始学习.Net Core,并使用Visual Studio Code工具来开发.感觉开发起来特别的方便,但是有个头疼的地方:许多的类库被修改了,一时半会儿还熟悉不了,需要查阅官方API... M ...

  7. python 集合删除元素

    #Create a new set num_set = , , , , , ]) #Discard number num_set.discard() print(num_set)

  8. ubuntu 14.04 安装 gflags

    1.下载 git clone https://github.com/gflags/gflags 2.编译 进入源码目录(即gflags文件夹) cmake . make -j 24 sudo make ...

  9. list_01

    双向链表 不支持随机存取([?] / at(?)) A.头尾 添加/移除 A.1.list::push_back(elemValue); A.2.list::pop_back(); A.3.list: ...

  10. 雷林鹏分享:Ruby 命令行选项

    Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...