JS 表单验证大全


Posted in Javascript onNovember 23, 2011

1.只能输入数字和英文的:
<input onkeyup="value=value.replace(/[/W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" ID="Text1" NAME="Text1">
2.只能输入数字的:
<input onkeyup="value=value.replace(/[^/d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" ID="Text2" NAME="Text2">
3.只能输入全角的:
<input onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))" ID="Text3" NAME="Text3">
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))" ID="Text4" NAME="Text4">
--------------------------------------------------------------------------------
验证非法字符,sql
function vdf()
{
var i,j,name,value,message,length,type,a=vdf.arguments,cb_name;
for (i=0; i<(a.length-2); i+=3)
{
if (a[i].indexOf('#')!=-1)
{
name=fob(a[i].substr(0,a[i].indexOf('#')));
cb_name=fob(a[i].substr((a[i].indexOf('#')+1),a[i].length));
}
else
{
name=fob(a[i]); // 控件名称
}
message=a[i+1]; // 提示信息
type=a[i+2]; // 类型
if (type!="r_time")
{
value=name.value.replace(/ +/g, ""); // 控件值
}
else
{
value=name.value;
}
}
--------------------------------------------------------------------------------
// ===============判断复选框是否选中================ //
if (type=="r_cb")
{
e=document.forms(0).elements;
var flag=false;
for (i=0;i<e.length;i++)
{
if (e[i]!=cb_name)
{
if (e[i].checked==true)
{
flag=true;
break;
}
}
if (i==e.length-1)
{
break;
}
}
if (flag==false)
{
alert(message+"!/n"); //为空时出现的提示
return false;
}
}
// ===============判断下拉框是否选择================ //
if (type=="r_sl")
{
if (name.selected==false)
{
alert(message+"!/n"); //为空时出现的提示
return false;
}
}
// ===============不能为空的判断================ //
if (type=="r")
{
if (value=="") // 判断是否为空
{
alert(message+"!/n"); //为空时出现的提示
name.focus();
name.select();
return false;
}
}
// ===============不能为空的判断,但不获得焦点================ //
if (type=="o_r")
{
if (value=="") // 判断是否为空
{
alert(message+"!/n"); //为空时出现的提示
return false;
}
}
// ===============只能输入中文================ //
if (type=="r_china")
{
if (value.search(/^[/u4e00-/u9fa5]+$/)==-1)
{
alert(message+"!/n"); // 判断不能为空
name.focus();
name.select();
return false;
}
}
// ===============不能为空,必须是数字或者字符判断================ //
if (type=="r_num_char")
{
if (value=="")
{
alert(message+"!/n"); //为空时出现的提示
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9a-zA-Z]+$/)==-1)
{
alert(message+"!/n"); //为空时出现的提示
name.focus();
name.select();
return false;
}
}
// ===============可以为空,不为空时,填数字================ //
if (type=="num")
{
if (value.search(/^[0-9]+$/)==-1 && value!="")
{
alert(message+"!/n"); // 判断不能为空
name.focus();
name.select();
return false;
}
}
// ===============不能为空,必须是数字判断================ //
if (type=="r_num")
{
if (value=="")
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9]+$/)==-1)
{
alert(message+"!/n"); // 判断不能为空
name.focus();
name.select();
return false;
}
}
// ===============必须输入小于n的数字================ //
if (type.indexOf("r_num<")!=-1)
{
length=type.substring((type.indexOf('<')+1),type.length); // 获得rn<后面的数
if (value=="") // 为空做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.length>length) // 限制数字长度做的限制
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
}
// ===============必须输入大于n的数字================ //
if (type.indexOf("r_num>")!=-1)
{
length=type.substring((type.indexOf('>')+1),type.length); // 获得rn<后面的数
if (value=="") // 为空做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.length<length) // 限制数字长度做的限制
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
}
// ===============必须输入a-b位之间的数字================ //
if (type.indexOf("r_num#<>")!=-1)
{
length=type.substr((type.indexOf('>')+1),type.length);
length=length.substr(0,length.lastIndexOf("-"));
length1=type.substring((type.indexOf('-')+1),type.length) // 获得rn<后面的数
if (value=="") // 为空做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.length<length || value.length>length1) // 限制数字长度做的限制
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
}
// ===============不能为空,必须是float类型================ //
if (type=="r_float")
{
if (value=="")
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[0-9]+$/)!=-1 || value.search(/^([0-9]+)|([0-9]+/.[0-9]*)|([0-9]*/.[0-9]+)$/)!=-1)
{
return true;
}
else
{
alert(message+"!/n"); // 判断不能为空
name.focus();
name.select();
return false;
}
}
// ===============判断email,不一定输入================ //
if (type.indexOf("email")!=-1)
{
if (name.value!="")
{
if (value.search(/^[_/.a-z0-9]+@[a-z0-9]+[/.][a-z0-9]{2,}$/i)==-1)
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
}
}
// ===============判断email,一定输入================ //
if (type.indexOf("r_email")!=-1)
{
if (name.value=="")
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
if (value.search(/^[_/.a-z0-9]+@[a-z0-9]+[/.][a-z0-9]{2,}$/i)==-1)
{
alert(message+"!/n");
name.focus();
name.select();
return false;
}
}
// ===============判断日期,比如2000-12-20================ //
if (type=="r_date")
{
flag=true;
getdate=value;
if (getdate.search(/^[0-9]{4}-(0[1-9]|[1-9]|1[0-2])-((0[1-9]|[1-9])|1[0-9]|2[0-9]|3[0-1])$/)==-1) // 判断输入格式时候正确
{
flag=false;
}
else
{
var year=getdate.substr(0,getdate.indexOf('-')) // 获得年
// 下面操作获得月份
var transition_month=getdate.substr(0,getdate.lastIndexOf('-'));
var month=transition_month.substr(transition_month.lastIndexOf('-')+1,transition_month.length);
if (month.indexOf('0')==0)
{
month=month.substr(1,month.length);
}
// 下面操作获得日期
var day=getdate.substr(getdate.lastIndexOf('-')+1,getdate.length);
if (day.indexOf('0')==0)
{
day=day.substr(1,day.length);
}
//alert(month);
//alert(day)
//return false;
if ((month==4 || month==6 || month==9 || month==11) && (day>30)) // 4,6,9,11月份日期不能超过30
{
flag=false;
}
if (month==2) // 判断2月份
{
if (LeapYear(year))
{
if (day>29 || day<1){ flag=false; }
}
else
{
if (day>28 || day<1){flag=false; }
}
}
else
{
flag=true;
}
}
if (flag==false)
{
alert(message+"!/n"); //为空时出现的提示
name.focus();
name.select();
return false;
}
}
1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>
2. 只能是汉字
<input onkeyup="value="/oblog/value.replace(/[^/u4E00-/u9FA5]/g,'')">
3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>
<input onkeydown="onlyEng();">
4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>
<input onkeydown="onlyNum();">
5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[/W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">
6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>
7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>
8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>
够了吧 :)
屏蔽右键 很酷
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中

2.1 表单项不能为空
<script language="javascript">
<!--
function CheckForm()
{
if (document.form.name.value.length == 0) {
alert("请输入您姓名!");
document.form.name.focus();
return false;
}
return true;
}
-->
</script>
2.2 比较两个表单项的值是否相同
<script language="javascript">
<!--
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) {
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return false;
}
return true;
}
-->
</script>
2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
<script language="javascript">
<!--
function isNumber(String)
{
var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
function CheckForm()
{
if(! isNumber(document.form.TEL.value)) {
alert("您的电话号码不合法!");
document.form.TEL.focus();
return false;
}
return true;
}
-->
</script>
2.4 表单项输入数值/长度限定
<script language="javascript">
<!--
function CheckForm()
{
if (document.form.count.value > 100 || document.form.count.value < 1)
{
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length<10)
{
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return false;
}
return true;
}
//-->
</script>
2.5 中文/英文/数字/邮件地址合法性判断
<SCRIPT LANGUAGE="javascript">
<!--
function isEnglish(name) //英文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}
function isChinese(name) //中文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}
function isMail(name) // E-mail值检测
{
if(! isEnglish(name))
return false;
i = name.indexOf(" at ");
j = name dot lastIndexOf(" at ");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}
function isNumber(name) //数值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}
function CheckForm()
{
if(! isMail(form.Email.value)) {
alert("您的电子邮件不合法!");
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) {
alert("英文名不合法!");
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) {
alert("中文名不合法!");
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) {
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return false;
}
return true;
}
//-->
</SCRIPT>
2.6 限定表单项不能输入的字符
<script language="javascript">
<!--
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}
function CheckForm()
{
if ((contain(document.form.NAME.value, "%/(/)><")) || (contain(document.form.MESSAGE.value, "%/(/)><")))
{
alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
//-->
</script>
1. 检查一段字符串是否全由数字组成
---------------------------------------
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>
2. 怎么判断是否是字符
---------------------------------------
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
3. 怎么判断是否含有汉字
---------------------------------------
if (escape(str).indexOf("%u")!=-1) alert("含有汉字");
else alert("全是字符");
4. 邮箱格式验证
---------------------------------------
//函数名:chkemail
//功能介绍:检查是否为Email Address
//参数说明:要检查的字符串
//返回值:0:不是 1:是
function chkemail(a)
{ var i=a.length;
var temp = a.indexOf('@');
var tempd = a.indexOf('.');
if (temp > 1) {
if ((i-temp) > 3){
if ((i-tempd)>0){
return 1;
}
}
}
return 0;
}
5. 数字格式验证
---------------------------------------
//函数名:fucCheckNUM
//功能介绍:检查是否为数字
//参数说明:要检查的数字
//返回值:1为是数字,0为不是数字
function fucCheckNUM(NUM)
{
var i,j,strTemp;
strTemp="0123456789";
if ( NUM.length== 0)
return 0
for (i=0;i<NUM.length;i++)
{
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return 0;
}
}
//说明是数字
return 1;
}
6. 电话号码格式验证
---------------------------------------
//函数名:fucCheckTEL
//功能介绍:检查是否为电话号码
//参数说明:要检查的字符串
//返回值:1为是合法,0为不合法
function fucCheckTEL(TEL)
{
var i,j,strTemp;
strTemp="0123456789-()# ";
for (i=0;i<TEL.length;i++)
{
j=strTemp.indexOf(TEL.charAt(i));
if (j==-1)
{
//说明有字符不合法
return 0;
}
}
//说明合法
return 1;
}
7. 判断输入是否为中文的函数
---------------------------------------
function ischinese(s){
var ret=true;
for(var i=0;i<s.length;i++)
ret=ret && (s.charCodeAt(i)>=10000);
return ret;
}
8. 综合的判断用户输入的合法性的函数
---------------------------------------
<script language="javascript">
//限制输入字符的位数开始
//m是用户输入,n是要限制的位数
function issmall(m,n)
{
if ((m<n) && (m>0))
{
return(false);
}
else
{return(true);}
}
9. 判断密码是否输入一致
---------------------------------------
function issame(str1,str2)
{
if (str1==str2)
{return(true);}
else
{return(false);}
}
10. 判断用户名是否为数字字母下滑线
---------------------------------------
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
if (reg.test(str)){
return (false);
}else{
return(true); }
}
2.8. form文本域的通用校验函数
---------------------------------------
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。
使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下<input name="txt_1" title="姓名">,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。
程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:< form onsubmit="return dovalidate()">

function dovalidate() 
{ 
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件 
for(i=0;i<fm.length;i++) 
{ 
//检测判断条件,根据类型不同可以修改 
if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT" && (fm[i].title!="")) 
if(fm[i].value="/blog/="")// 
{ 
str_warn1=fm[i].title+"不能为空!"; 
alert(str_warn1); 
fm[i].focus(); 
return false; 
} 
if(fm[i].id.toUpperCase()=="SZ")//数字校验 
{ 
if(isNaN(fm[i].value)) 
{ str_warn2=fm[i].title+"格式不对"; 
alert(str_warn2); 
fm[i].focus(); 
return false; 
} 
} 
} 
return true; 
}
Javascript 相关文章推荐
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
JavaScript运动减速效果实例分析
Aug 04 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
js给table赋值的实例代码
Oct 13 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 Javascript
关于vue.js组件数据流的问题
Jul 26 Javascript
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 Javascript
js实现的在本地预览图片功能示例
Nov 09 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
js实现带积分弹球小游戏
Jul 21 Javascript
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
JavaScript中的16进制字符(改进)
Nov 21 #Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 #Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 #Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 #Javascript
javascript中xml操作实现代码
Nov 21 #Javascript
js调用activeX获取u盘序列号的代码
Nov 21 #Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 #Javascript
You might like
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
ASP Json Parser修正版
2009/12/06 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
JavaScript 异步调用
2017/10/25 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
JQuery中queue方法用法示例
2019/01/31 jQuery
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
深入解析Python中的WSGI接口
2015/05/11 Python
python面试题小结附答案实例代码
2019/04/11 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
应届生护士求职信
2013/11/01 职场文书
高中自我鉴定范文
2013/11/03 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
军训结束新闻稿
2015/07/17 职场文书
大学生党课心得体会
2016/01/07 职场文书
python实现会员管理系统
2022/03/18 Python
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python