现在的位置: 首页 > 综合 > 正文

JS验证

2013年12月08日 ⁄ 综合 ⁄ 共 15818字 ⁄ 字号 评论关闭

js验证  

2009-10-20 16:57:51|  分类:

技术论坛
|  标签:
|字号 订阅

常用js函数收藏
旧一篇: jsp中模糊查询
/*------------------------------------------------------------
 dateDlg(inputid,initDate,startYear,endYear)  弹出时间窗口
 compareDate(end,s)                           与当前时间比较
 compareTwoDate(startDate,endDate,s)          比较两个时间
 isNumber(text,name)                          判断全是数字(true)                         

 isChar(text,addtemp,name,include)            判断符合要求字符
 isEmail(text)                                判断是电子邮件
 isPid(text)                                  判断是身份证号
 isNull(text,name)                            判断为空则提示(true)
 getLength(text)                              获取长度
 lengthEquals(text,name,num)                  确定长度(true)
 lengthless(text,name,num)             长度不少于(true)
 lengthmore(text,name,num)             长度不大于(true)
        checkPassword(text,text1)                    检验两次输入密码是否一致(true)
  ------------------------------------------------------------
//checkData()放在jsp页面
<script language="JavaScript" src="check.js"></script>
<script language="JavaScript">
function checkData()
{
 if(isNull(form1.name,'帐号')){}
 else if(lengthEquals(form1.name,"帐号",8)){}
 else if (getLength(form1.name)>13){}
 else{
  form1.submit();
 } 
}
</script>
  ------------------------------------------------------------*/
/*------------------------------------------------------------
 弹出时间选择小控件
 inputid--文本框name
 initDate--初始日期,为空时是当前时间
 startYear--日期范围的开始日期
 endYear--日期范围的结束日期
 使用例子onClick="dateDlg(end,'1999-11-12','1980','2010')"
  ------------------------------------------------------------*/
function dateDlg(inputid,initDate,startYear,endYear)
{
 var pattern = /^(19|20)([0-9]){2}$/;
 flag=pattern.test(startYear);
 if(!flag)startYear=1900;
 flag=pattern.test(endYear);
 if(!flag)endYear=2050;
 if(inputid.value==null||inputid.value=='')
  {
   if(initDate==null||initDate=='')
   {
     currentDate = new Date(); 
   }
   else{
    currentDate = initDate;
   }
  }
 else{
   currentDate = inputid.value;
  }
 var arguments = new Array(startYear,endYear,0,0,0)

 var pattern = /^(19|20)([0-9]){2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
 flag=pattern.test(currentDate);
 if(flag)
 {
  iYear=currentDate.substring(0,4);
  iMonth=currentDate.substring(5,7);
  iDay=currentDate.substring(8,10);
  arguments = new Array(startYear,endYear,iYear,iMonth,iDay)
 }
 showx = event.screenX - event.offsetX + 18;
 showy = event.screenY - event.offsetY - 210;

 var features =
  'dialogWidth:'  + 192 + 'px;' +
  'dialogHeight:' + 210 + 'px;' +
  'dialogLeft:'   + showx     + 'px;' +
  'dialogTop:'    + showy     + 'px;' +
  'directories:no; localtion:no; menubar:no; status=no; toolbar=no;scrollbars:yes;Resizeable=no';
 retval = window.showModalDialog("../js/calendar.htm", arguments , features );
 var calctrl = eval(inputid)
 if( retval != null ){
  calctrl.value = retval;
 }else{
  //alert("canceled");
 }
}

/*------------------------------------------------------------
 Trim()去左右空格
  ------------------------------------------------------------*/

String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
    return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
    return this.replace(/(\s*$)/g, "");
}
/*------------------------------------------------------------
 判断密码是否有单引号
  ------------------------------------------------------------*/
function isNotYinhao(s)
{  
    var yin;
 var temp="'";
 for(yin=0; yin < s.length; yin++ )
 {
  var ch = s.charAt(yin);
  if(temp.indexOf(ch)>=0)
  {
   return true;
  }
 }
 return false;
}

/*------------------------------------------------------------
 定义变量
  ------------------------------------------------------------*/
var i,j;

/*------------------------------------------------------------
 和当前日期比较,如果当前日期大于输入日期则提示
 end----输入日期
 s----提示信息
 使用例子onClick="compareDate(end,'选择日期不能在今天之前!')"
  ------------------------------------------------------------*/
function compareDate(end,s){
var a=new Date();
var b=end.value;
if(((Number(a.getYear())-Number(b.substring(0,4)))*356+
       (Number(a.getMonth())-Number(b.substring(5,7))+1)*31+
    (Number(a.getDate())-Number(b.substring(8,10))))>0)
 {
  alert(s);
  end.focus();
 }
}

/*------------------------------------------------------------
 两个时间进行比较,当开始日期大于结束日期则提示
 startDate----开始日期
 endDate------结束日期
 使用例子onClick="compareTwoDate(startDate,endDate,'开始日期不能大于结束日期!')"
  ------------------------------------------------------------*/
function compareTwoDate(startDate,endDate,s)
{
var a=startDate.value;
var b=endDate.value;
if(((Number(a.substring(0,4))-Number(b.substring(0,4)))*356+
       (Number(a.substring(5,7))-Number(b.substring(5,7)))*31+
    (Number(a.substring(8,10))-Number(b.substring(8,10))))>0)
 {
  alert(s);
  startDate.focus();
 }
}

/*------------------------------------------------------------
 判断是否为数字类型,如不是数字类型则提示
 text-------输入文本
 name-------提示的名字
 使用例子onBlur="compareTwoDate(this,'电话号码')"
  ------------------------------------------------------------*/
function isNumber(text,name)
{
  var temp="0123456789";
   for(j=0; j<text.value.length; j++ )
   {   
     var ch = text.value.Trim().charAt(j);
  if(temp.indexOf(ch)==-1)
  {
   alert(name+"应为数字类型!");
   text.focus();
   return true;
  } 
   }
}

/*------------------------------------------------------------
 判断两次密码输入是否一致
 text-------新密码
 name-------再次输入新密码
 使用例子checkPassword(form1.newpass,form1.newpass1)
  ------------------------------------------------------------*/
function checkPassword(text,text1)
{
  var newpass=text.value.Trim();
  var newpass1=text1.value.Trim();
  if(newpass!=newpass1){
    alert("两次输入新密码不一致!");
    text.focus();
    return true;
  }
}

/*------------------------------------------------------------
 判断是否包含非法字符,如含非法字符则提示
 text-------输入文本
 addtemp----除英文和数字外还可包含的字符
 name-------提示的名字
 include----提示中不允许包含的字符
 使用例子onBlur="compareTwoDate(this,'@_','邮件','%*$')"
  ------------------------------------------------------------*/
function isChar(text,addtemp,name,include)
{
  var temp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"+addtemp;
   for(j=0; j<text.value.length; j++ )
   {   
     var ch = text.value.Trim().charAt(j);
  if(temp.indexOf(ch)==-1)
  {
   alert(name+"中不允许包含'"+include+"'等字符!");
   text.focus();
   break;
  } 
   }
}

/*------------------------------------------------------------
 判断输入的是否为电子邮件,如含非法字符则提示
 text-------输入的电子邮件
 使用例子onBlur="isEmail(this)"
  ------------------------------------------------------------*/
function isEmail(text)
{  
 var email=text.value.Trim();
 var m=email.indexOf("@");
 var n=email.indexOf(".");
 if(email!="")
 {
  if(m<1||m>email.length-3)
  {
   alert("请输入正确的电子邮件格式!");
   text.focus();
   return true;
  }
  else if(n<m+2||n>email.length-2)
  {
   alert("请输入正确的电子邮件格式!");
   text.focus();
   return true;
  }
 }
}
/*------------------------------------------------------------
 判断输入文本是否为身份证号码,如为不正确则提示
 text-------输入的身份证号码
 使用例子onBlur="isPid(this)"
  ------------------------------------------------------------*/
function isPid(text)
{
 var pid=text.value.Trim();
 var temp="0123456789";
 var temp1="0123456789xX";
 if(pid!=""){
 if(pid.length==15)
 {
     for(j=0; j<15; j++ )
     {   
   var ch = pid.charAt(j);
   if(temp.indexOf(ch)==-1)
   {
    alert("请输入正确的身份证号码!");
    text.focus();
    break;
   }
  }      
 }
 else if(pid.length==18)
 {

     for(j=0; j<pid.length-1; j++ )
     {   
   var ch = pid.charAt(j);
   if(temp.indexOf(ch)==-1)
   {
    alert("请输入正确的身份证号码!");
    text.focus();
    break;
   }
  }      
  var ch1 = pid.charAt(pid.length-1);
  if(temp1.indexOf(ch1)==-1)
   {
    alert("请输入正确的身份证号码!");
    text.focus();
   }   
 }
 else{
  alert("身份证号码的应为15位或18位!");
  text.focus();
 }}
}

/*------------------------------------------------------------
 判断输入文本是否为空,如为空则提示
 text-------输入文本
 使用例子onBlur="isNull(this,'姓名')"
  ------------------------------------------------------------*/
function isNull(text,name)
{
 if(text.value.Trim()==null||text.value.Trim()=="")
 {
  alert(name+"不能为空!");
  text.focus();
  return true;
 }
}

/*------------------------------------------------------------
 获取文本框长度,中文作为两个字符处理
 text-------输入文本
 使用例子getLength(form1.name)
  ------------------------------------------------------------*/
function getLength(text)
{
 var temp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 temp=temp+"`~!@#$%^&*()_+|-=\[]{};':,./<>?\"";
 temp=temp+"·~!◎#¥%……※×()——+§-=÷【】『』;‘:“,。、《》?";
 var len = text.value.Trim().length;
 for(j=0;j<text.value.Trim().length;j++)
 {
  var ch= text.value.Trim().charAt(j);
  if(temp.indexOf(ch)==-1){
  len++;
  }
 }
 return len;
}

/*------------------------------------------------------------
 lengthEquals(text,name,num)    相等长度
 lengthless(text,name,num)      长度不少于
 lengthmore(text,name,num)      长度不大于
 获取文本框长度,中文作为两个字符处理
 text-------输入文本
 使用例子getLength(form1.name,'姓名',8)
  ------------------------------------------------------------*/
function lengthEquals(text,name,num)
{
 if(getLength(text)!=num)
 {
  alert("请输入"+num+"位"+name+"!")
  text.focus();
  return true;
 }
}

function lengthless(text,name,num)
{
 if(getLength(text)<num)
 {
  alert(name+"不能少于"+num+"位!")
  text.focus();
  return true;
 }
}
function lengthmore(text,name,num)
{
 if(getLength(text)>num)
 {
  alert(name+"不能大于"+num+"位!")
  text.focus();
  return true;
 }
}

/*------------------------------------------------------------
 判断bodyText输入文本是否为空,如为空则提示
 bodyText-------输入文本
 使用例子onBlur="isNullBody('姓名')"
  ------------------------------------------------------------*/
function isNullBody(name)
{
  var bodyText = frames["Dvbbs_Composition"].document.body.innerText;
  if(bodyText.length==0) {
      frames["Dvbbs_Composition"].focus();
      alert(name+"不能为空!");
      return true;
  }
}

/*------------------------------------------------------------
 获取文本框长度,中文作为两个字符处理
 bodyText-------输入文本
 使用例子isLengthBody(form1.name)
  ------------------------------------------------------------*/
function isLengthBody(text,name)
{
    if (text.value.length > 600) {
        frames["Dvbbs_Composition"].focus();
        alert(name+"不能超过600!");
 return true;
    }
}

/*------------------------------------------------------------
 检查是否含有”'“号
        有,则返回true
        无, 则返回false
  ------------------------------------------------------------*/
function isTheChar(text,name)
{
    var re= /'/g;
    var arr = text.match(re);
    if (arr == null)
        return false;
    else
        return true;
}

JavaScript函数大全 集合
 

1.document.write(""); 输出语句
2.JS中的注释为//
3.传统的HTML文档顺序是:document->html->(head,body)
4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)
5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value)
6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase();
7.JS中的值类型:String,Number,Boolean,Null,Object,Function
8.JS中的字符型转换成数值型:parseInt(),parseFloat()
9.JS中的数字转换成字符型:(""+变量)
10.JS中的取字符串长度是:(length)
11.JS中的字符与字符相连接使用+号.
12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<=
13.JS中声明变量使用:var来进行声明
14.JS中的判断语句结构:if(condition){}else{}
15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}
16.循环中止的命令是:break
17.JS中的函数定义:function functionName([parameter],...){statement[s]}
18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.
19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self
20.状态栏的设置:window.status="字符";
21.弹出提示信息:window.alert("字符");
22.弹出确认框:window.confirm();
23.弹出输入提示框:window.prompt();
24.指定当前显示链接的位置:window.location.href="URL"
25.取出窗体中的所有表单的数量:document.forms.length
26.关闭文档的输出流:document.close();
27.字符串追加连接符:+=
28.创建一个文档元素:document.createElement(),document.createTextNode()
29.得到元素的方法:document.getElementById()
30.设置表单中所有文本型的成员的值为空:
 var form = window.document.forms[0]
 for (var i = 0; i<form.elements.length;i++){
     if (form.elements[i].type == "text"){
         form.elements[i].value = "";
     }
 }
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)
32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length
33.单选按钮组判断是否被选中也是用checked.
34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)
35.字符串的定义:var myString = new String("This is lightsword");
36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();
37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到.
38.取字符串中指定位置的一个字符:StringA.charAt(9);
39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);
40. 数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在 值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函 数,Math.floor(Math.random()*(n+1))返回随机数
41.定义日期型变量:var today = new Date();
42. 日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear() 得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期 几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到 秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置
年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置 星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置 分,dateObj.setSeconds(val)设置秒  [注意:此日期时间从0开始计]
43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName
44.parent代表父亲对象,top代表最顶端对象
45.打开子窗口的父窗口为:opener
46.表示当前所属的位置:this
47.当在超链接中调用JS函数时用:(javascript:)来开头后面加函数名
48.在老的浏览器中不执行此JS:<!--      //-->
49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"></script>
50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript>
51. 当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html. 例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a>
52.JS 的内建对象 有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError
53.JS中的换行:\n
54. 窗口全屏大小:<script>function fullScreen() { this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script>
55.JS中的all代表其下层的全部元素 

56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1
57.innerHTML 的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p& gt;,则innerHTML的值就是:how are <em>you</em>
58.innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来.
59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.
60.isDisabled判断是否为禁止状态.disabled设置禁止状态
61.length取得长度,返回整型数值
62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc
63.window.focus()使当前的窗口在所有窗口之前.
64.blur()指失去焦点.与FOCUS()相反.
65.select()指元素为选中状态.
66.防止用户对文本框中输入文本:onfocus="this.blur()"
67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length
68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()
69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.';
70.添加到收藏夹:external.AddFavorite("http://www.dannyg.com","jaskdlf");
71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;
72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.
73.JS中的self指的是当前的窗口
74.JS中状态栏显示内容:window.status="内容"
75.JS中的top指的是框架集中最顶层的框架
76.JS中关闭当前的窗口:window.close();
77.JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}
78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn");
79.JS中的打印:window.print()
80.JS中的提示输入框:window.prompt("message","defaultReply");
81.JS中的窗口滚动条:window.scroll(x,y)
82.JS中的窗口滚动到位置:window.scrollby
83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout
84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]);
85.JS 中的退出之前使用的句柄:function verifyClose() {event.returnValue="we really like you and hope you will stay longer.";}}  window.onbeforeunload=verifyClose;
86.当窗体第一次调用时使用的文件句柄:onload()
87.当窗体关闭时调用的文件句柄:onunload()
88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息)
89.window.location.reload()刷新当前页面.
89-1.parent.location.reload()刷新父亲对象(用于框架)
89-2.opener.location.reload()刷新父窗口对象(用于单开窗口)
89-3.top.location.reload()刷新最顶端对象(用于多开窗口)
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)
91.document.write()不换行的输出,document.writeln()换行输出
92.document.body.noWrap=true;防止链接文字折行.
93.变量名.charAt(第几位),取该变量的第几位的字符.
94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值.
95.字符串连接:string.concat(string2),或用+=进行连接
96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算)
97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.
98.string.match(regExpression),判断字符是否匹配.
99.string.replace(regExpression,replaceString)替换现有字符串.
100.string.split(分隔符)返回一个数组存储值.
101.string.substr(start[,length])取从第几位到指定长度的字符串.
102.string.toLowerCase()使字符串全部变为小写.
103.string.toUpperCase()使全部字符变为大写.
104.parseInt(string[,radix(代表进制)])强制转换成整型.
105.parseFloat(string[,radix])强制转换成浮点型.
106.isNaN(变量):测试是否为数值型.
107.定义常量的关键字:const,定义变量的关键字:var

抱歉!评论已关闭.