JS表单验证

2023-05-16

12个常用的JS表单验证

1. 长度限制

<p>1. 长度限制</p>
<form name="a" onsubmit="return test()"> 
<textarea name="b" cols="40" rows="6" placeholder="不能超过50个字符!"></textarea>
<br />     //换行符
<input type="submit" name="Submit" value="check"> 
</form>

JS代码:


<script language="javascript"> 
function test() 
{ 
if(document.a.b.value.length>50) 
{ 
alert("不能超过50个字符!"); 
document.a.b.focus(); 
return false; 
}
} 
</script>

2. 只能是汉字

<p>2. 只能是汉字 </p>
<input type="text" onblur="isChinese(this.value)" placeholder="请输入中文!" />
<script language="javascript"> 
function isChinese(obj){ 
var reg=/^[\u0391-\uFFE5]+$/; 
if(obj!=""&&!reg.test(obj)){ 
alert('必须输入中文!');
return false; 
} 
}
</script>

3. 只能是英文字母

<script type="text/javascript">
//验证只能是字母
function checkZm(zm){ 
var zmReg=/^[a-zA-Z]*$/; 
if(zm!=""&&!zmReg.test(zm)){ 
alert("只能是英文字母!");
return false; 
} 
} 
</script>

4. 只能是数字

<script language=javascript> 
//验证只能为数字 
function checkNumber(obj){ 
var reg = /^[0-9]+$/; 
if(obj!=""&&!reg.test(obj)){ 
alert('只能输入数字!'); 
return false; 
} 
} 
</script>

5. 只能是英文字母和数字

<script type="text/javascript">
//验证只能是字母和数字 
function checkZmOrNum(zmnum){ 
var zmnumReg=/^[0-9a-zA-Z]*$/; 
if(zmnum!=""&&!zmnumReg.test(zmnum)){ 
alert("只能输入是字母或者数字,请重新输入");
return false; 
} 
} 
</script>

6. 检验时间大小(与当前时间比较)

<script type="text/javascript">
//检验时间大小(与当前时间比较) 
function checkDate(obj){ 
var obj_value=obj.replace(/-/g,"/");//替换字符,变成标准格式(检验格式为:'2009-12-10') 
// var obj_value=obj.replace("-","/");//替换字符,变成标准格式(检验格式为:'2010-12-10 11:12') 
var date1=new Date(Date.parse(obj_value)); 
var date2=new Date();//取今天的日期 
if(date1>date2){ 
alert("不能大于当前时间!"); 
return false; 
} 
} 
</script>

7. 屏蔽关键字(这里屏蔽***和***)

<script type="text/javascript">
function test(obj) { 
if((obj.indexOf ("***") == 0)||(obj.indexOf ("****") == 0)){ 
alert("屏蔽关键字(这里屏蔽***和****)!");
return false;} 
} 
</script>

8. 两次输入密码是否相同

<script type="text/javascript">
function check(){ 
with(document.all){ 
if(input1.value!=input2.value) 
{ 
alert("密码不一致") 
input1.value = ""; 
input2.value = ""; 
} 
else {
alert("密码一致");
document.forms[0].submit(); 
}
}
} 
</script>

9. 表单项不能为空

<script language="javascript"> 
function CheckForm(obj) 
{ 
if (obj.length == 0) { 
alert("姓名不能为空!"); 
return false; 
} 
return true; 
alert("姓名不能为空!"); 
} 
</script>

10. 邮箱验证

<script language="javascript">
function test(obj){
//对电子邮件的验证
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if(!myreg.test(obj))
{
alert('请输入有效的邮箱!');
return false;
}
}
</script>

11. 验证手机号

<script type="text/javascript">
function validatemobile(mobile) 
{ 
if(mobile.length==0) 
{ 
alert('手机号码不能为空!');
return false; 
} 
if(mobile.length!=11) 
{ 
alert('请输入有效的手机号码,需是11位!');
return false; 
} 

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; 
if(!myreg.test(mobile)) 
{ 
alert('请输入有效的手机号码!'); 
return false; 
} 
} 
</script>

12. 验证身份证号码(需是有效身份证)

<script type="text/javascript">
// 构造函数,变量为15位或者18位的身份证号码
function clsIDCard(CardNo) {
this.Valid=false;
this.ID15='';
this.ID18='';
this.Local='';
if(CardNo!=null)this.SetCardNo(CardNo);
}

// 设置身份证号码,15位或者18位
clsIDCard.prototype.SetCardNo = function(CardNo) {
this.ID15='';
this.ID18='';
this.Local='';
CardNo=CardNo.replace(" ","");
var strCardNo;
if(CardNo.length==18) {
pattern= /^\d{17}(\d|x|X)$/;
if (pattern.exec(CardNo)==null)return;
strCardNo=CardNo.toUpperCase();
} else {
pattern= /^\d{15}$/;
if (pattern.exec(CardNo)==null)return;
strCardNo=CardNo.substr(0,6)+'19'+CardNo.substr(6,9)
strCardNo+=this.GetVCode(strCardNo);
}
this.Valid=this.CheckValid(strCardNo);
}

// 校验身份证有效性
clsIDCard.prototype.IsValid = function() {
return this.Valid;
}

// 返回生日字符串,格式如下,1981-10-10
clsIDCard.prototype.GetBirthDate = function() {
var BirthDate='';
if(this.Valid)BirthDate=this.GetBirthYear()+'-'+this.GetBirthMonth()+'-'+this.GetBirthDay();
return BirthDate;
}

// 返回生日中的年,格式如下,1981
clsIDCard.prototype.GetBirthYear = function() {
var BirthYear='';
if(this.Valid)BirthYear=this.ID18.substr(6,4);
return BirthYear;
}

// 返回生日中的月,格式如下,10
clsIDCard.prototype.GetBirthMonth = function() {
var BirthMonth='';
if(this.Valid)BirthMonth=this.ID18.substr(10,2);
if(BirthMonth.charAt(0)=='0')BirthMonth=BirthMonth.charAt(1);
return BirthMonth;
}

// 返回生日中的日,格式如下,10
clsIDCard.prototype.GetBirthDay = function() {
var BirthDay='';
if(this.Valid)BirthDay=this.ID18.substr(12,2);
return BirthDay;
}

// 返回性别,1:男,0:女
clsIDCard.prototype.GetSex = function() {
var Sex='';
if(this.Valid)Sex=this.ID18.charAt(16)%2;
return Sex;
}

// 返回15位身份证号码
clsIDCard.prototype.Get15 = function() {
var ID15='';
if(this.Valid)ID15=this.ID15;
return ID15;
}

// 返回18位身份证号码
clsIDCard.prototype.Get18 = function() {
var ID18='';
if(this.Valid)ID18=this.ID18;
return ID18;
}

// 返回所在省,例如:上海市、浙江省
clsIDCard.prototype.GetLocal = function() {
var Local='';
if(this.Valid)Local=this.Local;
return Local;
}

clsIDCard.prototype.GetVCode = function(CardNo17) {
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
var cardNoSum = 0;
for (var i=0; i<CardNo17.length; i++)cardNoSum+=CardNo17.charAt(i)*Wi[i];
var seq = cardNoSum%11;
return Ai[seq];
}

clsIDCard.prototype.CheckValid = function(CardNo18) {
if(this.GetVCode(CardNo18.substr(0,17))!=CardNo18.charAt(17))return false;
if(!this.IsDate(CardNo18.substr(6,8)))return false;
var aCity={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:"国外"};
if(aCity[parseInt(CardNo18.substr(0,2))]==null)return false;
this.ID18=CardNo18;
this.ID15=CardNo18.substr(0,6)+CardNo18.substr(8,9);
this.Local=aCity[parseInt(CardNo18.substr(0,2))];
return true;
}

clsIDCard.prototype.IsDate = function(strDate) {
var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[2]-1, r[3]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[2]&&d.getDate()==r[3]);
}


function valiIdCard(idCard){
var checkFlag = new clsIDCard(idCard);
if (!checkFlag.IsValid()) {
alert("输入的身份证号无效,请输入真实的身份证号!");
document.getElementByIdx("idCard").focus();
return false;
}else{
alert("是有效身份证!");
}
}
</script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS表单验证 的相关文章

  • PX4 docker gazebo 安装踩坑记

    本来想在Linux上自己一步步搭建 px4的仿真gazebo程序的 xff0c 查了资料发现docker已经打包好了 xff0c 就直接找到这个目录 xff0c 跟着一步一步的安装 PX4 docker 但是在安装的过程中 xff0c 有一
  • 关于paddlepaddle使用推理模式时CUDA error:out of memory错误的解决办法

    在paddlepaddle的export py导出的模型 xff08 也就是生成 model params deploy yaml三个文件 xff09 xff0c 运行时报错Out of memory error on GPU 0 Cann
  • k8s学习(2)- 虚拟机搭建搭建Kubernetes集群(1.24.2)

    虚拟机搭建搭建Kubernetes集群 环境规划 虚拟机搭建配置网络解决和主机复制粘贴的问题使用MobaXterm连接虚拟机安装vmware tools xff08 建议使用MobaXterm xff09 配置yum源关闭防火墙关闭Swap
  • [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed f

    weights span class token operator 61 span span class token string 39 yolov5s pt 39 span ckpt span class token operator 6
  • AX210 PCIE网卡 安装记录(linux)

    AX210 PCIE网卡 安装记录 win11 安装安装之前安装之后 Linux 安装 装了 win11 和 Ubuntu 双系统 xff0c 需要分别安装 win11 安装 安装之前 家里500M宽带 安装之后 卖家发的驱动装上没反应 自
  • 区块链学习(3)

    区块链学习 xff08 3 xff09 以太坊账户交易的数据结构交易中的nonce交易中的gasgas的计算交易的 value 和 data特殊交易 xff1a 创建 xff08 部署 xff09 合约 以太坊账户 外部账户 xff08 e
  • 社区公众号的解决方案

    用户一 xff1a BEABA纸尿裤小喵 粉丝圈的搭建其实还是挺方便的 xff0c 是立足于微信环境下的微论坛形式 xff0c 可以配合微信公众号或者群来使用 搭建的话 xff0c 客服会有指导后台操作也不算难 xff0c 摸索几次就学会了
  • 比较Dask,Ray,Modin,Vaex和RAPIDS

    看到了一篇文章 xff0c 在这儿记录一下 Modin xff0c Ray作为后端 通过安装这些 xff0c 您可能会看到仅更改一行 xff08 import pandas as pd 到 import modin pandas as pd
  • python 接口自动化测试

    python 接口自动化测试 requestrequests post data和json 的区别文件上传带cookie测试同一个session中完成多个请求测试 pytest命令行配置文件Pytest前后置条件生成allure报告数据驱动
  • 书籍《Continuous Machine Learning with Kubeflow》

    Continuous Machine Learning with Kubeflow 第一章k8s 架构k8s如何工作 k8s 组件NodeClusterPodDeploymentServiceService的类型 IngressNamesp
  • kubeflow 1.6.1 单机搭建

    kubeflow 1 6 1 单机搭建 manifest 形式搭建 xff08 失败 xff09 先决条件安装kubeflowk8s 1 25 以上升级 istio 遇到的问题解决MySQL 和 minio 的Pending状态CrashL
  • 第八章、EM1000远端鱼缸监控系统

    本章使用Tibbo EM1000 TEV硬件模块开发 远程鱼缸监控系统 xff0c 让用户更方便 更实时 更容易的获得家中饲养鱼之相关信息 xff0c 不论外工作或出外旅游都能及时掌握其状况 EM1000 TEV设备可以链接鱼缸外围的装置
  • Linux中CAS服务端部署

    将cas war 部署进tomcat war包放到webapps下面 cas WEB INF deployerConfigContext xml目录下 可查看修改默认密码casuser Mellon lt bean id 61 34 pri
  • debian关闭图形界面_配置Debian系统不启用图形界面,只有命令行界面的方法

    Debian Linux系统图形界面相当的消耗硬件资源 比如开几个虚拟机就已经顶不住了 所以把这些Linux服务器的图形界面关掉 换成命令行界面 CLI command Line Interface 现在的Linux发行版本登陆界面都是默认
  • Java Canal binlog 日志监控

    参考地址 超详细的Canal入门 xff0c 看这篇就够了 xff01 java技术爱好者 R的博客 CSDN博客 canal 有需要的参考博客 xff01 xff01 xff01 xff01 xff01 xff01
  • 2.7进程调度的时机,切换与过程,方式

    一 xff0c 处理机调度的时机 xff1a 1 xff0c 什么时候需要进程调度 xff1f 1 xff09 当前运行进程主动放弃处理机 xff1a 进程正常终止 xff0c 运行过程发生堵塞 xff0c 进程主动请求堵塞 xff08 等

随机推荐