您的位置:首页 > Web前端 > JavaScript

js 常用函数

2011-09-23 09:54 190 查看
function setCookie(name,value)

{

var Days = 30; //此 cookie 将被保存 30 天

var exp = new Date(); //new Date("December 31, 9998");

exp.setTime(exp.getTime() + Days*24*60*60*1000);

document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();

}

function getCookie(name)

{

var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));

if(arr != null) return unescape(arr[2]); return null;

}

function delCookie(name)

{

var exp = new Date();

exp.setTime(exp.getTime() - 1);

var cval=getCookie(name);

if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();

}

<script type="text/javascript">

var _st = window.setTimeout;

/*重载window.setTimeout函数,引用的函数可以带参数*/

window.setTimeout = function(fRef, mDelay) {

if(typeof fRef == 'function'){

var argu = Array.prototype.slice.call(arguments,2);

alert(typeof(argu));

var f = (function(){ fRef.apply(null, argu); });

return _st(f, mDelay);

}

return _st(fRef,mDelay);

}

function test(x){

alert(x);

}

window.setTimeout(test,3000,'fason');

</script>

<script language=javascript>

<!--

/*@cc_on @*/

/*@if (@_win32 && @_jscript_version>=5)

function window.confirm(str)

{

str=str.replace(/\'/g, "'&chr(39)&'").replace(/\r\n|\n|\r/g, "'&VBCrLf&'");

execScript("n = msgbox('"+ str +"', 257, '自定的的 confirm')", "vbscript");

return(n==1);

}

@end @*/

alert(confirm('sure?'));

// -->

</script>

//两端去空格函数

function trim(str) {

return str.replace(/(^\s*)|(\s*$)/g,"");

}

<script>

//为Number增加length方法

Number.prototype.length = function()

{

return String(this).length;

}

alert((11).length())

</script>

Ms XmlDom 异步装载Xml文件

放在这里,算作是资源备份吧。

<script>

var xmldoc;

function Load(){

xmldoc = new ActiveXObject("Msxml2.DOMDocument");

xmldoc.onreadystatechange = CheckState;

xmldoc.resolveExternals = false;

xmldoc.load(URL.value);

}

function CheckState(){

var state = xmldoc.readyState;

RESULTS.innerHTML += "加载状态 = " + state + "<BR>"

if (state == 4){

var err = xmldoc.parseError;

if (err.errorCode != 0)

RESULTS.innerHTML += err.reason + "<BR>"

else

{

RESULTS.innerHTML += "加载成功。" + "<BR>"

alert(xmldoc.xml)

}

}

}

</script>

URL: <input type=text size=60 id=URL value="http://dotnet.aspx.cc/Rss.aspx">

<input type=button value="正在XML" onclick="Load()">

<div id=RESULTS style="color:red; font-weight:bold;"></div></script>

//带中文字符串长度,一个中文字长度为2

String.prototype.lenB = function(){return this.replace(/[^\x00-\xff]/g,"**").length;}

document.all.tes1.value.lenB();

预判断一下链接URL是否可用

<script language="javascript">

function getURL(url)

{

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("GET",url,false);

xmlhttp.send();

if (xmlhttp.readyState==4)

alert((xmlhttp.Status==200)?"存在":"不存在");

}

//user like this:

getURL("http://localhost/1.asp")

</script>

//将数字转换成三位逗号分隔的样式

function formatNum(s)

{

if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;}

var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)");

num += ""; while(re.test(num))

num = num.replace(re, "$1,$2$3")

return num;

}

alert(formatNum(-12345678.123));

alert(formatNum("12345678.123"));

alert(formatNum("10000000000000000000000000000000000000000"));

格式化日期:yyyy-m-d to yyyy-mm-dd

<SCRIPT LANGUAGE="JavaScript">

<!--

var str = "2005-3-2"; //2005-03-02

var str = "2005-3-22"; //2005-03-02

str = str.replace(/(\D)(\d)(?=\D|$)/g, "$10$2");

alert(str);

//-->

</SCRIPT>

表格中的行删除功能,用checkbox选择的

<script language="JavaScript">

<!--

var curRow=null;

function selectRow(tr1){

if(curRow)

curRow.bgColor="#FFFFFF";

tr1.bgColor="e7e7e7";

curRow=tr1;

}

function delTr(){

var chks=document.getElementsByName("chkDelete");

var tb=document.getElementById("tbContent");

for(var i=chks.length-1;i>=0;i--){

if(chks[i].checked){

tb.deleteRow(i);

}

}

}

//-->

</script>

<div align="center" style="overflow:auto; width:400; height:300px " id="divVector">

<table id="tbContent" border=1 width="300">

<script language="JavaScript">

<!--

for(var i=0;i<25;i++)

document.write('<tr height=20 onmouseover="selectRow(this)"><td algin="center"

width="20%"><input type="checkbox" name="chkDelete"></td><td width="80%"

align="center">'+i+'</td></tr>');

//-->

</script>

</table>

</div>

<input type="button" value=" 删除选中的行 " onclick="delTr()">

yyyy-mm-dd格式日期完整校验加提示

<script language="JavaScript">

<!--

function CheckDate(strDate){

var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;

if(!reg.test(strDate)){

alert("日期格式不正确!\n正确格式为:2004-01-01");

return false;

}

var ss=strDate.split("-");

var year=ss[0];

var month=ss[1];

var date=ss[2];

if(!checkYear(year)){return false;}

if(!checkMonth(month)){return false;}

if(!checkDate(year,month,date)){return false;}

return true;

}

function checkYear(year){

if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}

else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间

!"); return false}

else return true;

}

function checkMonth(month){

if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}

else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!");

return false}

else return true;

}

function checkDate(year,month,date){

var daysOfMonth=CalDays(parseInt(year),parseInt(month));

if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}

else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1

-"+daysOfMonth+"之间!"); return false;}

else return true;

}

function CalDays(year,month){

var date= new Date(year,month,0);

return date.getDate();

}

function isLeapYear(year){

if((year %4==0 && year %100!=0) || (year %400==0)) return true;

else return false;

}

alert(CheckDate("2007-02-29"));

//-->

</script>

<script language="JavaScript">

<!--

/* 函数名称 : dateAfterDays

* 函数功能 : 返回与某日期相距N天(N个24小时)的日期

* 函数参数 : num number类型 可以为正负整数或者浮点数

* 函数返回 : 新的日期

* 调用方法 : dateObject.dateAfterDays(num);

*/

Date.prototype.dateAfterDays=function(num){

if(typeof(num)!="number") throw new Error("Date(num)参数为数值类型.",-1);

var date = this.valueOf();

date += num*24*3600*1000;

return new Date(date);

}

var dd= new Date();

alert(dd.dateAfterDays(1.5));

//-->

</script>

类似CSDN感兴趣社区配置页面中的checkbox选择的功能

<script language="JavaScript">

<!--

function chkClk(obj){

var chks=document.getElementsByName(obj.name);

if(obj.flag=="main"){

for(var i=1;i<chks.length;i++)

chks[i].checked=obj.checked;

}

else{

for(var i=1;i<chks.length;i++)

if(chks[i].checked==false){

chks[0].checked=false;

break;

}

else{

if(i==chks.length-1) chks[0].checked=true;

}

}

}

//-->

</script>

<input type="checkbox" onclick="chkClk(this)" name="type1" flag="main">typetext

<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>

<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>

<br/><br/>

<input type="checkbox" onclick="chkClk(this)" name="type2" flag="main">typetext

<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>

<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
==========================================================

J***ASCRIPT的常用技术(二)

1、事件类

1.1 屏蔽右键

在body标签里加上oncontextmenu=self.event.returnValue=false

1.2 屏蔽所有功能键

1.3 --> 和<-- F5 F11,F9,F1

1.4 屏蔽组合键ctrl+N

<script language=javascript>

function KeyDown(){

if ((window.event.altKey)&&

((window.event.keyCode==37)|| file://屏蔽 Alt+ 方向键 ←

(window.event.keyCode==39))){ file://屏蔽 Alt+ 方向键 →

alert("不准你使用ALT+方向键前进或后退网页!");

event.returnValue=false;

}

if ((event.keyCode==8)|| file://屏蔽退格删除键

(event.keyCode==116)){ file://屏蔽 F5 刷新键

event.keyCode=0;

event.returnValue=false;

}

if ((event.ctrlKey)&&(event.keyCode==78)){ file://屏蔽 Ctrl+n

event.returnValue=false;

}

if ((event.shiftKey)&&(event.keyCode==121)){ file://屏蔽 shift+F10

event.returnValue=false;

}

if (event.keyCode==122){ file://屏蔽 F11

event.returnValue=false;

}

}

只要知道keyCode即可屏蔽所有功能键

一、验证类

1、数字验证内

1.1 整数

/^(-|\+)?\d+$/.test(str)

1.2 大于0的整数 (用于传来的ID的验证)

/^\d+$/.test(str)

1.3 负整数的验证

/^-\d+$/.test(str)

2、时间类

2.1 短时间,形如 (13:04:06)

function isTime(str)

{

var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);

if (a == null) {alert('输入的参数不是时间格式'); return false;}

if (a[1]>24 || a[3]>60 || a[4]>60)

{

alert("时间格式不对");

return false

}

return true;

}

2.2 短日期,形如 (2003-12-05)

function strDateTime(str)

{

var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

if(r==null)return false;

var d= new Date(r[1], r[3]-1, r[4]);

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);

}

2.3 长时间,形如 (2003-12-05 13:04:06)

function strDateTime(str)

{

var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;

var r = str.match(reg);

if(r==null)return false;

var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);

return

(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&

d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==

r[7]);

}

2.4 只有年和月。形如(2003-05,或者2003-5)

2.5 只有小时和分钟,形如(12:03)

3、表单类

3.1 所有的表单的值都不能为空

<input onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')alert('不能为空!')">

3.2 多行文本框的值不能为空。

3.3 多行文本框的值不能超过sMaxStrleng

3.4 多行文本框的值不能少于sMixStrleng

3.5 判断单选框是否选择。

3.6 判断复选框是否选择.

3.7 复选框的全选,多选,全不选,反选

3.8 文件上传过程中判断文件类型

4、字符类

4.1 判断字符全部由a-Z或者是A-Z的字字母组成

<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">

4.2 判断字符由字母和数字组成。

<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">

4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母

/^([a-zA-z_]{1})([\w]*)$/g.test(str)

4.4 字符串替换函数.Replace();

5、浏览器类

5.1 判断浏览器的类型

window.navigator.appName

5.2 判断ie的版本

window.navigator.appVersion

5.3 判断客户端的分辨率

window.screen.height; window.screen.width;



6、结合类

6.1 email的判断。

function ismail(mail)

{

return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)

[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));

}

6.2 手机号码的验证

6.3 ***的验证

function isIdCardNo(num)

{

if (isNaN(num)) {alert("输入的不是数字!"); return false;}

var len = num.length, re;

if (len == 15)

re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);

else if (len == 18)

re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);

else {alert("输入的数字位数不对!"); return false;}

var a = num.match(re);

if (a != null)

{

if (len==15)

{

var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);

var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&

D.getDate()==a[5];

}

else

{

var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);

var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&

D.getDate()==a[5];

}

if (!B) {alert("输入的***号 "+ a[0] +" 里出生日期不对!"); return false;}

}

return true;

}

3.7 复选框的全选,多选,全不选,反选

<form name=hrong>

<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>

<input type=checkbox name=mm onclick="checkItem('All')"><br/>

<input type=checkbox name=mm onclick="checkItem('All')"><br/>

<input type=checkbox name=mm onclick="checkItem('All')"><br/>

<input type=checkbox name=mm onclick="checkItem('All')"><br/>

<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>

<input type=checkbox name=All2 onclick="checkAll('mm2')">全选<br/>

<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="javascript">

function checkAll(str)

{

var a = document.getElementsByName(str);

var n = a.length;

for (var i=0; i<n; i++)

a[i].checked = window.event.srcElement.checked;

}

function checkItem(str)

{

var e = window.event.srcElement;

var all = eval("document.hrong."+ str);

if (e.checked)

{

var a = document.getElementsByName(e.name);

all.checked = true;

for (var i=0; i<a.length; i++)

{

if (!a[i].checked){ all.checked = false; break;}

}

}

else all.checked = false;

}

</SCRIPT>

3.8 文件上传过程中判断文件类型

<input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">



不断地清空剪贴板:

<body onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)">

<script language="javascript" type="text/javascript">

file://先复制一样东西,或者文本或者图片

if(clipboardData.getData("Text")||clipboardData.getData("HTML")||

clipboardData.getData("URL"))

{

alert("有效行为");

}

</script>

===========================================================

J***ASCRIPT的常用技术(三)

真正的全屏页面解决之道!(全代码)

真正全屏解决之道:

1.htm

<html>

<head>

<title>无标题文档</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body onload="window.open('fullscreen.htm','','fullscreen=1,scroll=no');">

</body>

</html>

fullscreen.htm

<html>

<head>

<title>无标题文档</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language="javascript1.2">

<!--

function opensmallwin(myurl){

var w2=300;//想弹出窗口的宽度

var h2=100;//想弹出窗口的高度

var w3=window.screen.width/2-w2/2;

var h3=window.screen.height/2-h2/2;

window.open(myurl,'small','toolbar=no,location=no,directories=no,status=no,menubar=no,

scrollbars=no,resizable=0,width='+ w2 +',height='+ h2 +',left='+ w3 +',top='+ h3 +'');

}

file://-->

<!--

function modelesswin(url,mwidth,mheight){

if (document.all&&window.print)

eval('window.external.m2_blocked(url,"","help:0;resizable:0;status:0;center:1;

scroll:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px")')

else

eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,

scrollbars=1")')

}

file://-->

</script>

</head>

<body scroll="no">

<div align="right"><a href="javascript:" onclick="window.close()">关闭

</a> </div>

<p></P>

<div align="right"><a href="javascript:" onclick="opensmallwin('login.htm')">登录

</a> </div>

<p></P>

<div align="center"><a href="javascript:"

onclick="modelesswin('login.htm',300,160)">用模态登录窗口</a> </div>

</body>

</html>

login.htm

<html>

<head>

<title>用户登录</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<!--

body {

background-color: #EAEAEA;

font-family: Arial, Helvetica, sans-serif;

font-size: 12px;

line-height: 24px;

color: #336699;

}

input.boxline {

width: 100px;

font-family: "Times New Roman", "Times", "serif";

font-size: 9pt;

border: 1px solid #669999;

height: 18px;

}

input.whiteline {

font-size: 12px; border: 1px #999999 solid

}

-->

</style></head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<table width="100%" height="100%" border="0" cellpadding="0"

cellspacing="14" bgcolor="#CCCCCC">

<tr valign="top">

<td width="10%" nowrap align="right"><b>用户名:</b></td>

<td width="90%"><input name="textfield1" type="text" size="25"

class="whiteline"></td>

</tr>

<tr valign="top">

<td nowrap align="right"><b>密 码:</b></td>

<td><input name="textfield12" type="password" size="25"

class="whiteline"></td>

</tr>

<tr valign="top">

<td> </td>

<td><input type="submit" name="Submit" value="登  录"

class="boxline"></td>

</tr>

</table>

</body>

</html>

自动关掉原窗口:

<html>

<head>

<title>无标题文档</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

-->

</style>

</head>

<body onload="window.open('fullscreen.htm','','fullscreen=1,scroll=no');

window.opener=null;window.close()">

<input type=button value=关闭 onclick="window.opener=null;window.close()">

<!-- IE5.5+ 不会有弹出提示 -->

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2

height=0 width=0></OBJECT>

<input type=button value=关闭窗口 onclick=document.all.WebBrowser.ExecWB(45,1)>

</body>

</html>

关键是在onload事件中加入:

window.opener=null;window.close()

预读图片:

<SCRIPT LANGUAGE="javascript">

<!-- This script and many more are available free online at -->

<!-- The javascript Source!! <a href=http://javascript.internet.com

target=_blank>http://javascript.internet.com -->

<!-- Begin

image1 = new Image();

image1.src = "image1.gif";

image2 = new Image();

image2.src = "image2.gif";

// End -->

</script>



关于两个网页刷新交互的问题

JS处理方法:

a.htm

<a href="b.htm" target=blank>发表留言</a>

<script>

alert("wwwwwwwwwwwwwwwwwwwwwwwwww");

</script>

b.htm

<script language="javascript">

file://window.opener.location.reload();刷新父窗口

file://window.opener.location="2.htm"//重定向父窗口到2.htm页

function closewindow()

{

window.opener.location.reload();

self.close();

window.opener.document.write("sssssssssssssssssss");

}

</script>

<a href="b.htm" target=blank onclick="closewindow();">关闭</a>



后台处理方法:

private btnForSubmit(Object sender,EventArgs e)

{

.............

Response.Write("<script>window.opener.document.execCommand('refresh');

window.opener='';window.close();</script>");

file://string str="<script>window.opener.document.execCommand('refresh');

window.opener='';window.close();</script>";

file://this.RegisterStartupScript("mycode",str);

------------

以上转自梅花雪兄在CSDN贴的代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: