1. 长度限制
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
2. 只能是汉字
3." 只能是英文
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
4. 只能是数字
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
5. 只能是英文字符和数字
6. 验证油箱格式
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");
}
7. 屏蔽关键字(这里屏蔽***和****)
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
8. 两次输入密码是否相同
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
够了吧 :)
屏蔽右键 很酷
οncοntextmenu="return false" οndragstart="return false" onselectstart="return false"
加在body中
二
2.1 表单项不能为空
2.2 比较两个表单项的值是否相同
2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
2.4 表单项输入数值/长度限定
2.5 中文/英文/数字/邮件地址合法性判断
2.6 限定表单项不能输入的字符
1. 检查一段字符串是否全由数字组成
---------------------------------------
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
{
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
{
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
ret=ret && (s.charCodeAt(i)>=10000);
return ret;
}
8. 综合的判断用户输入的合法性的函数
---------------------------------------
2.2 比较两个表单项的值是否相同
2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
2.4 表单项输入数值/长度限定
2.5 中文/英文/数字/邮件地址合法性判断
2.6 限定表单项不能输入的字符
Kandy 发表于2009年
做了一个javascript表单验证,个人觉得还可以。基本效果是获得焦点显示提示信息,失去焦点进行验证。
1、用户名验证:匹配规则为4到16个字符(包括字母和数字)。代码如下:
function isNumberOrLetter(s)//判断是否是数字或字母,用于验证用户名,失去焦点验证。
{
var regu = "^[0-9a-zA-Z]{4,16}$";
var re = new RegExp(regu);
if (!re.test(s))
{
document.getElementById ("userInf").innerHTML="用户名格式不对!";
document.getElementById ("userInf").style.color="red";
}
else
{
document.getElementById ("userInf").innerHTML="用户名通过!";
document.getElementById ("userInf").style.color="green";
document.getElementById ("userIDCheck").innerHTML="";
2、密码验证:规则为6到16个字符、下划线,第一个字符为字母。
function validatorPassword(s)//验证规则为6到16数字、字母、下划线组成,首字母为字母,用于验证密码。
{
regu="^[a-zA-Z][0-9a-zA-Z_]{5,15}$";
re=new RegExp(regu);
if (!re.test(s))
{
document.getElementById ("passwordInf").innerHTML="不对!";
document.getElementById ("passwordInf").style.color="red";
}
else
{
document.getElementById ("passwordInf").innerHTML="通过!";
document.getElementById ("passwordInf").style.color="green";
document.getElementById ("passwordCheck").innerHTML="";
}
// alert("6到16个数字、下划线和英文字符,第一个必须为字母,不区分字母大小写");
}
3、密码确认:验证两次密码必须一致。
function passwordConfirm(s)//确认密码验证
{
if(s.toLowerCase()!=document.getElementById ("password").value.toLowerCase())
{
document.getElementById ("confirmInf").innerHTML="密码不一致!";
document.getElementById ("confirmInf").style.color="red";
}
else
{
document.getElementById ("confirmInf").innerHTML="通过!";
document.getElementById ("confirmInf").style.color="green";
document.getElementById ("confirmCheck").innerHTML="";
}
// alert("两次密码输入不一致");
}
4、邮箱验证:
function isEmail(strEmail) //邮箱验证
{
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1)
{
document.getElementById ("emailInf").innerHTML="格式不对!";
document.getElementById ("emailInf").style.color="red";
}
else
{
document.getElementById ("emailInf").innerHTML="通过!";
document.getElementById ("emailInf").style.color="green";
document.getElementById ("emailCheck").innerHTML="";
}
// alert("Email格式不正确!");
// document.formSignUp.email.value="";
// document.formSignUp.email.focus();
}
5、身份证验证:包括15位和18位。
function idNumber(s)//身份证验证
{
regu1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15wei
regu2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;//18wei
re1=new RegExp(regu1);
re2=new RegExp(regu2);
if(!(re1.test(s)||re2.test(s)))
{
document.getElementById ("idCardInf").innerHTML="格式不对!";
document.getElementById ("idCardInf").style.color="red";
}
else
{
document.getElementById ("idCardInf").innerHTML="通过!";
document.getElementById ("idCardInf").style.color="green";
document.getElementById ("idCardCheck").innerHTML="";
}
// alert("请正确填写18位或15位身份证号码");
}
6、手机号码验证:13和15开头的号码。
function isMobileNO(s)//手机验证
{
var a = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15\d{9}$/ ;
if( !s.match(a) )
{
document.getElementById ("mobileNOInf").innerHTML="格式不对!";
document.getElementById ("mobileNOInf").style.color="red";
// alert("手机号码格式不对");
}
else
{
document.getElementById ("mobileNOInf").innerHTML="通过!";
document.getElementById ("mobileNOInf").style.color="green";
document.getElementById ("mobileNOCheck").innerHTML="";
}
}
7、各表单域提示信息,获得焦点验证。
function displayInform(s)//注册信息规则提示信息(获得焦点验证)
{
if(s=="user")
document.getElementById ("userIDCheck").innerHTML="(用户名由4-16个数字或字母组成)";
if(s=="password")
document.getElementById ("passwordCheck").innerHTML="(密码由6-16个数字、字母、下划线组成,首字母必须是字母,不区分大小写)";
if(s=="passwordC")
document.getElementById ("confirmCheck").innerHTML="(两次密码输入必须一致)";
if(s=="idCard")
document.getElementById ("idCardCheck").innerHTML="(请输入正确的号码,以便你更容易找回密码)";
if(s=="mobileNO")
document.getElementById ("mobileNOCheck").innerHTML="(请输入正确的号码,以便你更快找回密码)";
if(s=="email")
document.getElementById ("emailCheck").innerHTML="(请输入正确的邮箱地址,以便你更容易找回密码)";
}
8、表单提交验证:先对必填项进行非空验证,再进行匹配验证。
function submitValidator() //提交验证
{
if(document.getElementById("control").style.display=="inline")
{
if((document.getElementById ("user").value=="")||(document.getElementById("password").value=="")||(document.getElementById("passwordC").value=="")||(document.getElementById("answer").value=="")||(document.getElementById("question").value==""))
{
alert("必填项不能为空!");
return false;
}
else
{
if((document.getElementById ("user").value).match(/^[0-9a-zA-Z]{4,16}$/)&&(document.getElementById("password").value).match(/^[a-zA-Z][0-9a-zA-Z_]{5,15}$/)&&
(document.getElementById ("password").value.toLowerCase()==document.getElementById ("passwordC").value.toLowerCase()))
{return true;}
else
{alert("输入格式不对");return false;}
}
}
else
{
if((document.getElementById ("user").value=="")||(document.getElementById("password").value=="")||(document.getElementById("passwordC").value=="")||(document.getElementById("answer").value==""))
{
alert("必填项不能为空!");
return false;
}
else
{
if((document.getElementById ("user").value).match(/^[0-9a-zA-Z]{4,16}$/)&&(document.getElementById("password").value).match(/^[a-zA-Z][0-9a-zA-Z_]{5,15}$/)&&
(document.getElementById ("password").value.toLowerCase()==document.getElementById ("passwordC").value.toLowerCase()))
{return true;}
else
{alert("输入格式不对");return false;}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/diershi/archive/2009/04/16/4084981.aspx
JS表单验证
/*
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
* 功能:通用验证所有的表单元素.
* 使用:
*
*
*
*
* author:wanghr100(灰豆宝宝.net)
* email:wanghr100@126.com
* update:19:28 2004-8-23
* 注意:写正则表达式时一定要小心.不要让"有心人"有空子钻.
* 已实现功能:
* 对text,password,hidden,file,textarea,select,radio,checkbox进行合法性验证
* 待实现功能:把正则表式写成个库.
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
*/
////////////////////////////////////////////////////////////////////////////////
//主函数
function CheckForm(oForm)
{
var els = oForm.elements;
//遍历所有表元素
for(var i=0;i
{
//是否需要验证
if(els.check)
{
//取得验证的正则字符串
var sReg = els.check;
//取得表单的值,用通用取值函数
var sVal = GetValue(els);
//字符串->正则表达式,不区分大小写
var reg = new RegExp(sReg,"i");
if(!reg.test(sVal))
{
//验证不通过,弹出提示warning
alert(els.warning);
//该表单元素取得焦点,用通用返回函数
GoBack(els)
return false;
}
}
}
}
//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
case "text":
case "hidden":
case "password":
case "file":
case "textarea": return el.value;
case "checkbox":
case "radio": return GetValueChoose(el);
case "select-one":
case "select-multiple": return GetValueSel(el);
}
//取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueChoose(el)
{
var sValue = "";
//取得第一个元素的name,搜索这个元素组
var tmpels = document.getElementsByName(el.name);
for(var i=0;i
{
if(tmpels.checked)
{
sValue += "0";
}
}
return sValue;
}
//取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueSel(el)
{
var sValue = "";
for(var i=0;i
{
//单选下拉框提示选项设置为value=""
if(el.options.selected && el.options.value!="")
{
sValue += "0";
}
}
return sValue;
}
}
//通用返回函数,验证没通过返回的效果.分三类进行取值
//文本输入框,光标定位在文本输入框的末尾
//单多选,第一选项取得焦点
//单多下拉菜单,取得焦点
function GoBack(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
case "text":
case "hidden":
case "password":
case "file":
case "textarea": el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
case "checkbox":
case "radio": var els = document.getElementsByName(el.name);els[0].focus();
case "select-one":
case "select-multiple":el.focus();
}
}
通用表单函数测试:
test:不验证
账号:不能为空
密码:六位以上
电话:
相片上传:
出生日期:日期格式2004-08-10
省份:
选择你喜欢的运动:
游泳
篮球
足球
排球
你的学历:
大学
中学
小学
个人介绍:
20个字以上
---------------------------------------------
Javascript表单编程
对form元素进行脚本编写
获取表单的引用
var oForm = document.forms[0]; //得到第一个表单
var oOtherForm = document.forms["formz"] //得到名为formz的表单
访问表单字段
var oTextbox1 = oForm.textbox1; //得到名为"textbox"的字段
var oTextbox1 = oForm["text box 1"] //得到名为"text box 1"的字段
表单字段共性
var oField 1 = oForm.elements[0];
oField1.focus(); //设置焦点到第二个字段
获得焦点:document.forms[0].name1.focus();
表单提交
使用图片进行提交
使用submit进行提交
表单重置
对文本框进行脚本编写
获取/更改文本框的值
选择文本
文本框事件
自动选择文本
对列表框和组合框进行脚本编写
访问选项
获取/更改选中项
添加选项
var ListUtil = new Object();
ListUtil.add = function(oListbox, sName, sValue){option.appendChild(document.createTextNode(sName));}
删除选项
var oListbox = document.getElementsById("selListbox");
oListbox.remove(0); //移除一个选项
移动选项
重新排序选项
对复选框和单选框进行脚本编写
得到单选框的值
男
document.getElementById("male").value
得到复选框的值
表单验证
使用submit事件在错误发生之后捕获错误
使用change事件在错误发生时捕获
使用keypress事件在错误发生之前捕获错误
表单效验最佳实践
必须对用户有帮助
不要让人讨厌
只要有可能,就用HTML功能代替javascript
一次显示所有错误
早点捕获错误
如果拿不准,就不要太严格
------------------------------------------------代码实例:
//function validate(){
// var user = document.getElementById("user");
// user.disabled="true"; //表示不可用
// user.focus(); //得到焦点
// οnfοcus="validate();" //当某个文本框得到焦点时触发
// οnblur="validate()" //当某个文本框失去焦点时触发
///}
//获取表单的四种方式
//function validate(){
//var form1 = document.getElementById("form1");
//var form = document.forms[0];
//var form = document.forms["form1"];
//var form = document.form1;
//alert(form==form1)
//获取表单中的元素
//var a = form1.user;
//var a = form1.elements[0];
//var a = form1.elements["user"];
//alert(a.value)
//表单提交
//form1.submit();
//}
//获取单选框的值
// function validate(){
// var form1 = document.getElementById("form1");
//var user = form1.user;
//user.focus();
//user.select(); //选中文本框的内容
//var rName = document.getElementsByName("radioName");
// var a = form1.radioName;
// for(var i=0;i
// if(a[i].checked){
// alert(a[i].value)
// }
// }
//}
//获取复选框的值
/** function validate(){
var form1 = document.getElementById("form1");
var check = form1.checkName;
for(var i=0;i
if(check[i].checked){
alert(check[i].value)
}
}
}**/
function validate(){
}
//onchange事件
function chage(){
var user = document.getElementById("user");
if(user.value==""){
document.getElementById("span1").innerHTML="用户名不能为null";
user.focus();
return false;
}else{
document.getElementById("span1").innerHTML="用户名合法";
return ture;
}
}
Document对象在检验表单中的作用
在制作登录表单验证的过程中,我们经常要用到Document函数对象,这是JavaScript非常重要的函数。W3C把它纳入DOM文档模型对象中。可以说它是元素操作的一个十分重要的方法。
此函数的语法代码如下:
Document.ement.chosts.x //x可表示为属性也可表示为方法。
如要表示表单reg中名字输入框name的文本内容:document.reg.name.value
要让输入框获得焦点:代码格式为document.reg.name.focus()
下面是一段典型的验证输入函数代码:
function chekname(){
name=document.reg.name.value;
if(name==""){
alert("请输入昵称!");
document.reg.name.vlaue=focus(); 或document.reg.name.focus() ;
return false;
}else{
open("chkname.php?name="+name+"","chk","noscrollbars=no,width=200,height=50,top=200,left=200");
}
}
此段自定义函数的意思是验证输入框是不是空白,若不是空白则打开一个名为“chk”带有传递参数的窗口进一步验证用户名是不是合法。
Document对象在检验表单中的作用
转载自 风之恋 转载于2009
asp链接sqlserver
在ASP中数据库链接2中方法
1、直接用字符串链接,代码如下:
<%
'连接数据库
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={SQL Server};server=主机ip地址; uid=用户名;pwd=密码;database=数据库名"
%>
2、利用DSN(数据源)链接,这种方法你要先创建一个DSN,创建方法点击服务器/控制面板/管理工具/数据源 (ODBC)图标,打开数据源管理器,在系统DSN选项卡中创建一个SQL Server的数据源。链接代码如下:
<%
'连接数据库
Dim conn
Set conn=server.createobject("adodb.connection")
conn.Open "DSN=article;uid=用户名;pwd=密码;"
%>
然而在DW MX中系统采用的二种方法,具体步骤如下:
1、在Files面板中定义一个站点
2、点击Application面板中Database选项卡中的加号按钮,选择Custom Connecting String(自定义链接字符串,就是采用的一种方法链接)或者Data Source Name(DSN,就是的二种方法链接),打开浮动面板,填入参数即可。
我觉得不管用DW MX 写的程序怎么样,对于数据库的连接文件(常用的是conn.asp),我有两个建议,一是在网上最好使用手写的连接文件(下面详细讲如何写),二是引用数据库时要在文件开头使用,调用数据库,这样数据库的名字或位置的改变就比较容易了。
其次,解释一下如何写一个conn.asp文件。最简单的是
<%
dim conn
dim connstr
connstr="DBQ="+server.mappath("data/database.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
关于 server.mappath("data/database.mdb")解释一下。本例使用的是相对路径,意思是conn.asp与data目录在同一个目录下。如果conn.asp所在目录与data目录在同一个目录下,则为server.mappath("../data/database.mdb") 。
也可以使用绝对路径 server.mappath("/data/database.mdb"), 意思是data为根目录,与conn.asp在那里没有关系
具体的详细的例子可以看icefire 的例http://www.kupage.com/forum/data/2002/9/29/1111314071.htm
最后是关于使用sql数据库的问题,不同的主页服务商是不同的。下面是CHINADNS新网的解决方法,供大家参考。
1.安装一个SQLSERVER的客户端软件
2.点击在本机任务栏中开始-〉MicrosoftSqlServer2000-〉EnterpriseManager
3.在打开SQLSERVER客户端软件后,在文件栏中点击Action中的NewSqlServer
Registration,然后填写您的sqlserver的IP地址,用户名和密码(与FTP的用户名密码相同)在点击完成后,将会出现211.154.211.xx――RegisteredSuccessfully,这说明您的数据库已经开通。
4.在ConsoleRoot中选择您数据库的IP,点击鼠标右建选择Connect,正常网速下应出现一个连接成功的图标。
5.连接成功后,选择211.154.211.xx-〉Database-〉www_domainname_com,打开您的数据库
6.打开Tables,,将显示出所有类型为System的列表,您可以用鼠标右建中NewTable建表,或用OpenTable查看表内容。您也可以用选用步骤2中的import或output进行倒入,倒出表操作相关的操作请您查看相关网页和书籍。
附:
ASP连接数据库相关源代码参考
1.ASP连接Access数据库语句
SetConn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("aaa/bbspp1.mdb")+";DefaultDir=;DRIVER={Microsoft AccessDriver(*.mdb)};DriverId=25;FIL=MSAccess; ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"
Conn.Openconnstr
其中SetConn=Server.CreateObject("ADODB.Connection")为建立一个访问数据的对象server.mappath(aaa/bbspp1.mdb)是告诉服务器access数据库访问的路径
2.ASP连接Sqlserver数据库语句
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"driver={SQLServer};server=202.108.32.94; uid=USERID;pwd=PASSWORD;database=www_panwei_com"
connopen
其中/Setconn=Server.CreateObject("ADODB.Connection")为设置一个数据库的连接对象
driver=()告诉连接的设备名是SQL-SERVER
server是连接的服务器的ip地址,Uid是指用户的用户名,pwd是指的用户的password,
database是用户数据库在服务器端的数据库的名称
HTML标签
Meta 标签之http-equiv属性详解2009年09月11日 星期五 17:43http-equiv,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容。
Meta标签的http-equiv属性语法格式:<meta http-equiv="参数" content="参数变量值">
常用的HTTP-EQUIV类型有:
1. Content-Language
说明:设定页面使用的字符集
用法:
注意:该META标签定义了HTML页面所使用的字符集为GB2132,就是国标汉字码。如果将其中的“charset=GB2312”替换成“BIG5”,则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时,IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集,则IE就提示下载。其他的语言也对应不同的charset,比如日文的字符集是“iso-2022-jp ”,韩文的是“ks_c_5601”。
2. Content-Type定义页面制作所使用的文字语言
Content-Type的Content还可以是:text/xml等文档类型;
Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集;
Content-Language的Content还可以是:EN、FR等语言代码。
以上2个参数都可以帮助搜索引擎判断网页所使用的语言。
3. Refresh (刷新)
说明:让网页多长时间(秒)刷新自己,或在多长时间后让网页自动链接到其它网页。
用法:
注意:其中的5是指停留5秒钟后自动刷新到URL网址。