Javascript-正则表达式常用验证
- <div>
- <h1>一、判断中国邮政编码匹配</h1>
- <p>分析:中国邮政编码都是6位,且为纯数字</p>
- <div>邮政编码:<input id="Postcode" type="text" onblur="checkPost();" /></div>
- <div id="Prompt"></div>
- </div>
- <script type="text/javascript">
- function checkPost() {
- var Post = document.getElementById("Postcode").value; //获取输入框的值
- var Prom = document.getElementById("Prompt"); //获取提示栏
- var regPost = /^\d{6}$/; //解释:匹配数字6次,且开头到结尾都为数字
- var isPost = regPost.test(Post); //测试 Post 是否符合 regPost 的规则,是则返回true,不是则返回false
- if (isPost == false) {
- Prom.innerHTML = "请输入正确的邮政编码";
- return false;
- }
- Prom.innerHTML = "";
- return true;
- }
- </script>
- <div>
- <h1>一、判断中国手机号</h1>
- <p>分析:中国手机号都是11位,且为纯数字</p>
- <div>手机号:<input id="Mobile" type="text" onblur="checkMobile();" /></div>
- <div id="PromptM"></div>
- </div>
- <script type="text/javascript">
- function checkMobile() {
- var Mobile = document.getElementById("Mobile").value; //获取输入框的值
- var PromM = document.getElementById("PromptM"); //获取提示栏
- if (Mobile.length != 11) { //首先判断其必须为11位
- PromM.innerHTML = "请输入11位手机号";
- return false
- }
- /**分析:
- * 手机号码:
- * 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[0, 1, 6, 7, 8], 18[0-9]
- * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
- * 联通号段: 130,131,132,145,152,155,156,170,171,176,185,186
- * 电信号段: 133,134,153,170,177,180,181,189
- 分析是在度娘里搜的,随便一搜就出来了很多了,这是2016年最新的
- **/
- var regMobile = /^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\d{8}$/;
- /**解释:
- * ^1 开头为1
- * 3[0-9] 第二位为3,第三位为0-9中的任意数字
- * |4[57] 或第二位为4,第三位为5或7
- * |5[0-35-9] 或第二位为5,第三位为0-3 5-9中的任意数字
- * |7[01678] 或第二位为7,第三位为[...]中的任意数字
- * |8[0-9] 或第二位为8,第三位为0-9中的任意数字
- * \d{8}$ 后8为纯数字
- **/
- var isMobile = regMobile.test(Mobile);
- if (isMobile == false) {
- PromM.innerHTML = "请输入正确的手机号";
- return false;
- }
- PromM.innerHTML = "";
- return true;
- }
- </script>
- <div>
- <h1>一、判断用户名</h1>
- <p>分析:用户名每个平台的规定不一样,这里按“英文字母和数字组成的4-18为字符,以字母开头”为例</p>
- <div>用户名:<input id="UseName" type="text" onblur="checkUseN();" /></div>
- <div id="PromptU"></div>
- </div>
- <script type="text/javascript">
- function checkUseN() {
- var UseN = document.getElementById("UseName").value; //获取输入框的值
- var PromU = document.getElementById("PromptU"); //获取提示栏
- if (UseN == "") { //判断用户名不为空
- PromU.innerHTML = "用户名不能为空"
- return false;
- }
- var regUseN = /^[A-z][A-z0-9]{3,17}$/;
- /**解释:
- * ^[A-z] 以字母开头
- * [A-z0-9] 后面最少4位字母或数字,最多17个,且以此为结尾
- **/
- var isUseN = regUseN.test(UseN);
- if (isUseN == false) {
- PromU.innerHTML = "请输入正确的用户名";
- return false;
- }
- PromU.innerHTML = "";
- return true;
- }
- </script>
- <div>
- <h1>一、判断密码</h1>
- <p>分析:密码每个平台的规则也不尽相同,这里按“英文字母+数字+特殊符号的6-20位字符组成”为例</p>
- <div>密码:<input id="password" type="password" onblur="checkPW();" /></div>
- <div id="PromptPW"></div>
- <div>确认密码:<input id="againpw" type="password" onblur="checkApw();" /></div>
- <div id="PromptApw"></div>
- </div>
- <script type="text/javascript">
- var PW;
- function checkPW() {
- PW = document.getElementById("password").value; //获取密码输入框的值
- var PromPW = document.getElementById("PromptPW"); //获取提示栏
- if (PW == "") { //判断密码不为空
- PromPW.innerHTML = "密码不能为空"
- return false;
- }
- if (PW.length < 6) { //判断密码长度最少6位
- PromPW.innerHTML = "密码最少为6位字符"
- return false;
- }
- if (PW.length > 20) { //判断密码长度最多20位
- PromPW.innerHTML = "密码最多只可以20位字符";
- return false;
- }
- var zm = /[A-z]/g //全局查找字母
- if (zm.test(PW) == false) {
- PromptPW.innerHTML = "密码必须包含至少一位字母"
- return false;
- }
- var NaN = /\d/g //全局查找数字
- if (NaN.test(PW) == false) {
- PromptPW.innerHTML = "密码必须包含至少一位数字"
- return false;
- }
- var fh = /[^A-z]\D/g //全局查找非数字与除了字母之外的字符
- if (fh.test(PW) == false) {
- PromptPW.innerHTML = "密码必须包含至少一位字符"
- return false;
- }
- PromptPW.innerHTML = ""
- return true;
- }
- function checkApw() {
- var Apw = document.getElementById("againpw").value; //获取确认密码输入框值
- var PromApw = document.getElementById("PromptApw"); //获取提示栏
- if (Apw == "") { //判断确认密码不为空
- PromApw.innerHTML = "确认密码不能为空"
- return false;
- }
- if (Apw !== PW) { //判断确认密码值与密码值必须是否一致
- PromApw.innerHTML = "两次输入的密码不一致";
- return false;
- }
- PromApw.innerHTML = "";
- return true;
- }
- </script>
- <div>
- <h1>一、判断电子邮件</h1>
- <p>分析:888@qq.com 888@sina.com.cn</p>
- <div>E-mail:<input id="email" type="text" onblur="checkEm();" /></div>
- <div id="PromptEm"></div>
- </div>
- <script type="text/javascript">
- function checkEm() {
- var Em = document.getElementById("email").value; //获取E-mail输入框值
- var PromEm = document.getElementById("PromptEm"); //获取提示栏
- var regEm = /^[a-zA-Z0-9_-]{1,}@[a-zA-Z0-9_-]{1,}(\.[a-zA-Z]{2,}){1,2}$/;
- /**解释
- * ^[a-zA-Z0-9_-]{1,} 开头可以是字母、数字或“_-”,且1次以上
- * @[a-zA-Z0-9_-]{1,} 接着是“@”,“@”后是可以是字母、数字或“_-”,且字母、数字或“_-”要1次以上
- * (\.[a-zA-Z]{2,}) 接着后面应该是“.”,“.”后应为字母,且字母需2次以上
- * {1,2} 像上面这种“.”后面是字母的,最少1次 ,最多只能2次
- **/
- var isEm = regEm.test(Em);
- if (isEm == false) {
- PromEm.innerHTML = "您输入的E-mail地址不合法"
- return false;
- }
- PromEm.innerHTML = "";
- return true;
- }
- </script>
- <div>
- <h1>一、判断出生年月日</h1>
- <p>分析:1997-05-11 19970511 1997-5-2</p>
- <div>出生年月:<input id="Birth" type="text" onblur="checkBth()" /></div>
- <div id="PromptBth"></div>
- </div>
- <script type="text/javascript">
- function checkBth() {
- var Bth = document.getElementById("Birth").value; //获取出生年月日输入框值
- var PromBth = document.getElementById("PromptBth"); //获取提示栏
- //首先大体判断下是否为正确的年月日格式
- var regBth = /(19\d{2}|200\d{1}|201\d{1})-?(0?[1-9]|1[0-2])-?(0?[1-9]|[1-2]\d|3[0-1])/;
- /**解释
- * (19\d{2}|200\d{1}|201\d{1}) 匹配年份,
* 目前能有的年份开头仅有19xx也就是/19\d{2}/ || 200x也就是/200\d{1}/ || 201x也就是/201\d{1}/- * -? 可以有-,也可以没有
* 这是为符合大部分人的书写习惯,我们加上这个判断,可以让匹配率更高,用户体验也更好- * (0?[1-9]|1[0-2]) 匹配月份,这里的0?与上面的-?是一样的作用
- *(0?[1-9]|[1-2]\d|3[0-1]) 匹配日
- **/
- var isBth = regBth.test(Bth);
- if (isBth == false) {
- PromBth.innerHTML = "请输入正确的出生年月";
- return false;
- }
- //判断瑞年平年,大小月的年月日格式
- var YearR = /(19\d{2}|200\d{1}|201\d{1})/.exec(Bth)[0] / 4; //获取年份除以4,为判断是否为瑞平年
- var YearZ = parseInt(YearR); //年份除以4取整,为判断是否为瑞平年
- var month = /^(19\d{2}|200\d{1}|201\d{1})-?(0?[1-9]|1[0-2])/.exec(Bth)[0]; //获取年月
- if (/2$/.test(month) == true) { //判断月份是否为2月
- if (YearR == YearZ) { //判断是否为瑞年
- if (/[30-31]$/.test(Bth) == true) { //判断是否有30或31
- PromBth.innerHTML = "请输入正确的出生年月";
- return false;
- }
- }
- else if (YearR !== YearZ) { //判断是否为平年
- if (/(29|30|31)$/.test(Bth) == true) { //判断是否有29或30或31
- PromBth.innerHTML = "请输入正确的出生年月";
- return false;
- }
- }
- }
- if (/(4|6|9|11)$/.test(month) == true) { //判断月份是否为4、6、9或11月
- if (/31$/.test(Bth) == true) { //判断是否有31
- PromBth.innerHTML = "请输入正确的出生年月";
- return false;
- }
- }
- PromBth.innerHTML = "";
- return true;
- }
- </script>
作者:leona
Javascript-正则表达式常用验证的更多相关文章
- JavaScript学习笔记- 正则表达式常用验证
<div> <h1>一.判断中国邮政编码匹配</h1> <p>分析:中国邮政编码都是6位,且为纯数字</p> <div>邮政编码 ...
- JavaScript 中常用的 正则表达式
这编文章我来整理了一些在 javascript 中常用的正则式希望能给大家带来一些开发的灵感 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{ ...
- JavaScript表单验证和正则表达式
JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: <! ...
- 来自极客头条的 15个常用的javaScript正则表达式
摘要收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期. Q ...
- 【收藏】15个常用的javaScript正则表达式(转)
0 前言 收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期 ...
- 常用JavaScript正则表达式整理
在表单验证中,正则表达式书写起来特别繁琐,本文整理了15个常用的JavaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IP ...
- 15个常用的javaScript正则表达式--来自于javascript公众号
摘要 收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期. ...
- PHP常用验证正则表达式
PHP常用验证正则表达式 数字.手机号.QQ号.Url地址合法性校验 1.验证是否为整数 1 function isNumber($val) 2 { 3 if(ereg("^[0-9]+$& ...
- JS通用表单验证函数,基于javascript正则表达式
表单的验证在实际的开发当中是件很烦琐又无趣的事情今天在做一个小项目的时候,需要JS验证,寻找到一个比较好的东西 地址如下: http://blog.csdn.net/goodfunman/archiv ...
- JavaScript正则表达式验证大全(收集)
以下函数调用方式: ? 1 2 3 4 function check() { var bb = document.getElementById("txt_id").value;// ...
随机推荐
- CentOS 8上安装Docker
前言 这几天,想玩玩docker,方便漏洞复现,我去学docker搭建了,感觉不错,挺方便的 安装步骤: 1.下载docker-ce的repo curl https://download.docker ...
- java基础之完数判断
完数: 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该 ...
- 坐标转换,EPSG:4326转换成高德坐标教程
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系.2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标 ...
- 【bzoj 4671】 异或图
题目 神仙题啊神仙题 显然这个东西一脸不可求的样子啊,这种东西我们显然需要搞一个容斥什么的 于是设\(g_i\)表示至少存在\(i\)个联通块(联通块内部的边没有要求,联通块和联通块之间不存在边)的方 ...
- Error: Could not link: /usr/local/share/doc/homebrew
mac 执行brew update 报错 Error: Could not link: /usr/local/share/doc/homebrew 更新brew,报错 Error: Could not ...
- matlab-变量类型-数组-矩阵
1 变量类型 1.1基本 1.2 特殊变量 ans •i,j: complex number •Inf: 无穷大 •eps: 2.2204e-016 •NaN: not a number •pi:pa ...
- grant
# 添加超级用户 grant all privileges on *.* to 'dump_tmp'@'10.10.10.10' identified by 'dump_tmp'; grant all ...
- kafka例子程序
//生产端 产生数据 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor li ...
- git pull拉取远程指定分支
1.若git clone之后想拉取某个指定分支:先git pull ,然后git checkout 指定分支名称 2.若git clone之后想拉取某个指定分支:先git fetch origin 分 ...
- android搭建
搭建:https://www.cnblogs.com/zoupeiyang/p/4034517.html#1 android sdk manager 翻墙:http://www.androiddevt ...