String对象中的正则表达式
(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对象中的正则表达式的更多相关文章
- js String对象中常用方法小结(字符串操作)
1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...
- String对象中常用的方法
String对象中常用的方法 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始 ...
- js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包含Text字符 ...
- 【Java面试题】15 String s="Hello"; s=s+“world!”;这两行代码执行后,原始的String对象中的内容到底变了没有?String与StringBuffer的超详细讲解!!!!!
1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类.一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,Str ...
- 将变参格式化到一个string对象中
该小程序演示了变参的用法.它的功能是,仿照sprintf,将变参内容保存到string中. /* 功能说明: 仿照sprintf,将字符串格式化到一个string对象中. 实现方式: 该例子主要是用来 ...
- 005 String s = "Hello";s = s + " world!";执行这两行代码执行后,原始的 String 对象中的内容到底变了没有?
原始的String对象中的内容没有改变成“Hello world”. 1.原因 因为在Java中String类被设计成不可改变的类,所以String类的所有对象都是不可变的.第一句代码中,s(存储在栈 ...
- String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
没有.因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象.在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行 ...
- 用于string对象中字符截取的几种函数总结——语法、参数意义及用途举例
1. charAt():返回指定位置的字符. 语法:stringObject.charAt(index) 参数意义:index 必需,指字符在字符串中的下标.需要注意的是,字符串中第一个字符的下标是 ...
- [转载]js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包含Text字符串'); }
随机推荐
- 洛谷月赛 Hello World(升级版) - 动态规划
题目背景 T1答案要mod1000000007(10^9+7),请重新提交,非常抱歉! 一天,智障的pipapi正在看某辣鸡讲义学程序设计. 题目描述 在讲义的某一面,他看见了一篇文章.这篇文章由英文 ...
- JAVA I/O(六)多路复用IO
在前边介绍Socket和ServerSocket连接交互的过程中,读写都是阻塞的.套接字写数据时,数据先写入操作系统的缓存中,形成TCP或UDP的负载,作为套接字传输到目标端,当缓存大小不足时,线程会 ...
- jQuery 源码分析:当 selector 传来一个函数时,怎么进行处理?
本文章为 0.9 版本,将会在稍后润色更新.本文使用的 jQuery 版本为 3.4.0 我们知道使用 $ 操作符时,可以往里面塞很多类型的参数,字符串,对象,函数...,jQuery 会根据不同的参 ...
- Eclipse的快捷键使用总结
最近一直在使用Idea开发项目,导致之前一直使用的Eclipse快捷键忘记的差不多了,现在稍微整理了一些,方便以后可以快速切换回来. 常用的Eclipse快捷键总结: Ctrl+S 保存当前正在编辑的 ...
- 第十四章 数字签名算法--RSA
注意:本节内容主要参考自 <Java加密与解密的艺术(第2版)>第9章“带密钥的消息摘要算法--数字签名算法” <大型分布式网站架构(设计与实践)>第3章“互联网安全架构” 1 ...
- 自整理的jquery.Validate验证表达式
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母 /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod("letters ...
- Codeforces Round #189 (Div. 2) D. Psychos in a Line 单调队列dp
D. Psychos in a Line time limit per test 1 second memory limit per test 256 megabytes input standard ...
- hdu 1269 迷宫城堡 最简单的联通图题 kosaraju缩点算法
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Des ...
- [ios]received memory warning
参考:http://blog.sina.com.cn/s/blog_68661bd80101nn6p.html IPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统 ...
- 用Java随机生成四则运算
代码链接:https://github.com/devilwjy/Code.Demo 需求分析: 1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符 ...