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 相关文章推荐
javascript 装载iframe子页面,自适应高度
Mar 20 Javascript
探索Emberjs制作一个简单的Todo应用
Nov 07 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
JS判断字符串字节数并截取长度的方法
Mar 05 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
Nov 23 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
JavaScript onclick事件使用方法详解
May 15 Javascript
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采集类Snoopy抓取图片实例
2014/06/19 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
jquery实现图片预加载
2015/12/25 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
React实现全选功能
2020/08/25 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
财务部绩效考核方案
2014/05/04 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
装修公司管理制度
2015/08/05 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
导游词之唐山景点
2019/12/18 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android