日常收集整理的JavaScript常用函数方法

函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
这里是要执行的代码
}

当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

字符串长度截取

functiocutstr(strlen{
 vatemp,
 icoun,
 patr/[^\x-\xff]/,
 strr"";
 fo(vastr.lengthi++{
 i(icounle{
 temstr.substr(i);
 i(patrn.exec(temp=null{
 icounicoun
 els{
 icounicoun
 }
 strr+temp
 els{
 break;
 }
 }
 returstrr"..."
 }

替换全部

String.prototype.replaceAlfunction(ss{
 returthis.replace(neRegExp(s"gm")s)
 }

清除空格

 String.prototype.trifunction({
 vareExtraSpac/^\s*(.*?)\s+$/;
 returthis.replace(reExtraSpace"$")
 }

清除左空格/右空格

 functioltrim(s)returs.replace/^(\s*| *)/"")}
 functiortrim(s)returs.replace/(\s*| *)$/"")}

判断是否以某个字符串开头

String.prototype.startWitfunctio(s{
 returthis.indexOf(s=
 }

判断是否以某个字符串结束

String.prototype.endWitfunctio(s{
 vathis.lengts.length;
 retur(>&this.lastIndexOf(s=d)
 }

转义html标签

functioHtmlEncode(text{
 returtext.replace(/&/g'&').replace(/\"/g'"').replace(/</g'<').replace(/>/g'>')
 }

时间日期格式转换

Date.prototype.Formafunction(formatStr{
 vastformatStr;
 vaWee['日''一''二''三''四''五''六'];
 ststr.replace(/yyyy|YYYY/this.getFullYear());
 ststr.replace(/yy|YY/(this.getYear((this.getYear().toString('(this.getYear());
 ststr.replace(/MM/(this.getMonth((this.getMonth().toString('(this.getMonth());
 ststr.replace(/M/g(this.getMonth());
 ststr.replace(/w|W/gWeek[this.getDay()]);
 ststr.replace(/dd|DD/this.getDate(this.getDate().toString('this.getDate());
 ststr.replace(/d|D/gthis.getDate());
 ststr.replace(/hh|HH/this.getHours(this.getHours().toString('this.getHours());
 ststr.replace(/h|H/gthis.getHours());
 ststr.replace(/mm/this.getMinutes(this.getMinutes().toString('this.getMinutes());
 ststr.replace(/m/gthis.getMinutes());
 ststr.replace(/ss|SS/this.getSeconds(this.getSeconds().toString('this.getSeconds());
 ststr.replace(/s|S/gthis.getSeconds());
 returstr
 }

判断是否为数字类型

functioisDigit(value{
 vapatr/^[-]*$/;
 i(patrn.exec(value=nul|valu=""{
 returfalse
 els{
 returtrue
 }
 }

设置cookie值

 functiosetCookie(namevalueHours{
 vaneDate();
 vaoffse;
 vautd.getTime((d.getTimezoneOffset();
 vanut(offset);
 vaexneDate(nd);
 exp.setTime(exp.getTime(Hour);
 document.cookinam"=escape(value";path=/;expires=exp.toGMTString(";domain=doc.com;"
 }

获取cookie值

functiogetCookie(name{
 vaardocument.cookie.match(neRegExp("(^)nam"=([^;]*)(;|$)"));
 i(ar!nullreturunescape(arr[]);
 returnull
 }

加入收藏夹

functioAddFavorite(sURLsTitle{
 tr{
 window.external.addFavorite(sURLsTitle)
 catch(e{
 tr{
 window.sidebar.addPanel(sTitlesURL"")
 catch(e{
 alert("加入收藏失败,请使用Ctrl+D进行添加")
 }
 }
 }

设为首页

functiosetHomepage({
 i(document.all{
 document.body.style.behavio'url(#default#homepage)';
 document.body.setHomePage('http://wcboy.com')
 elsi(window.sidebar{
 i(window.netscape{
 tr{
 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
 catch(e{
 alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输about:config,然后将signed.applets.codebase_principal_suppor值该为true")
 }
 }
 vaprefComponents.classes['@mozilla.org/preferences-service;'].getService(Components.interfaces.nsIPrefBranch);
 prefs.setCharPref('browser.startup.homepage''http://wcboy.com')
 }
 }

加载样式文件

functioLoadStyle(url{
 tr{
 document.createStyleSheet(url)
 catch(e{
 vacssLindocument.createElement('link');
 cssLink.re'stylesheet';
 cssLink.typ'text/css';
 cssLink.hreurl;
 vaheadocument.getElementsByTagName('head')[];
 head.appendChild(cssLink)
 }
 }

返回脚本内容

functioevalscript(s{
 if(s.indexOf('<script'=-returs;
 va/<script[^\>]*?>([^\x]*?)<\/script>/ig;
 vaar[];
 while(arp.exec(s){
 vap/<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
 vaarr[];
 arrp.exec(arr[]);
 if(arr{
 appendscript(arr[]''arr[]arr[]);
 els{
 p/<script(.*?)>([^\x]+?)<\/script>/i;
 arrp.exec(arr[]);
 appendscript(''arr[]arr[].indexOf('reload='!-);
 }
 }
 returs;
 }

清除脚本内容

 functiostripscript(s{
 returs.replace(/<script.*?>.*?<\/script>/ig'');
 }

动态加载脚本文件

functioappendscript(srctextreloadcharset{
 vaihash(srtext);
 if(!reloa&in_array(idevalscripts)return;
 if(reloa&$(id){
 $(id).parentNode.removeChild($(id));
 }
 evalscripts.push(id);
 vascriptNoddocument.createElement("script");
 scriptNode.typ"text/javascript";
 scriptNode.iid;
 scriptNode.charsecharsecharse(BROWSER.firefodocument.characterSedocument.charset);
 tr{
 if(src{
 scriptNode.srsrc;
 scriptNode.onloadDonfalse;
 scriptNode.onloafunctio({
 scriptNode.onloadDontrue;
 JSLOADED[src;
 };
 scriptNode.onreadystatechangfunctio({
 if((scriptNode.readyStat='loaded|scriptNode.readyStat='complete'&!scriptNode.onloadDone{
 scriptNode.onloadDontrue;
 JSLOADED[src;
 }
 };
 elsif(text){
 scriptNode.textext;
 }
 document.getElementsByTagName('head')[].appendChild(scriptNode);
 catch(e{}
 }

返回按ID检索的元素对象

functio$(id{
 retur!inuldocument.getElementById(id);
 }

跨浏览器绑定事件

functioaddEventSamp(obj,evt,fn){
 if(!oTarget){return;}
 i(obj.addEventListener{
 obj.addEventListener(evtfnfalse);
 }elsif(obj.attachEvent){
 obj.attachEvent('on'+evt,fn);
 }else{
 oTarget["onsEvtTypefn;
 }
 }

跨浏览器删除事件

 functiodelEvt(obj,evt,fn){
 if(!obj){return;}
 if(obj.addEventListener){
 obj.addEventListener(evt,fn,false);
 }elsif(oTarget.attachEvent){
 obj.attachEvent("onevt,fn);
 }else{
 obj["onevtfn;
 }
 }

为元素添加on方法

Element.prototype.oElement.prototype.addEventListener;
 NodeList.prototype.ofunctio(eventfn{、
 []['forEach'].call(thisfunctio(el{
 el.on(eventfn);
 });
 returthis;
 };

为元素添加trigger方法

Element.prototype.triggefunctio(typedata{
 vaevendocument.createEvent('HTMLEvents');
 event.initEvent(typetruetrue);
 event.datdat|{};
 event.eventNamtype;
 event.targethis;
 this.dispatchEvent(event);
 returthis;
 };
 NodeList.prototype.triggefunctio(event{
 []['forEach'].call(thisfunctio(el{
 el['trigger'](event);
 });
 returthis;
 };

检验URL链接是否有效

functiogetUrlState(URL){
 vaxmlhttneActiveXObject("microsoft.xmlhttp");
 xmlhttp.Open("GET",URLfalse);
 try{
 xmlhttp.Send();
 }catch(e){
 }finally{
 varesulxmlhttp.responseText;
 if(result){
 if(xmlhttp.Status==){
 return(true);
 }else{
 return(false);
 }
 }else{
 return(false);
 }
 }
 }

格式化CSS样式代码

 .functioformatCss(s){//格式化代码
 s.replace(/\s*([\{\}\:\;\,])\s*/g"$");
 s.replace(/;\s*;/g";")//清除连续分号
 s.replace(/\,[\s\.\#\d]*{/g"{");
 s.replace(/([^\s])\{([^\s])/g"${\n\t$");
 s.replace(/([^\s])\}([^\n]*)/g"$\n}\n$");
 s.replace(/([^\s]);([^\s\}])/g"$;\n\t$");
 returs;
 }

压缩CSS样式代码

functiocompressCs(s{//压缩代码
 s.replace(/\/\*(.|\n)*?\*\//g"")//删除注释
 s.replace(/\s*([\{\}\:\;\,])\s*/g"$");
 s.replace(/\,[\s\.\#\d]*\{/g"{")//容错处理
 s.replace(/;\s*;/g";")//清除连续分号
 s.match(/^\s*(\S+(\s+\S+)*)\s*$/)//去掉首尾空白
 retur(=null"s[];
 }

获取当前路径

vacurrentPageUr"";
 i(typeothis.hre=="undefined"{
 currentPageUrdocument.location.toString().toLowerCase();
 }els{
 currentPageUrthis.href.toString().toLowerCase();
 }

判断是否移动设备

functioisMobile(){
 i(typeothis._isMobil=='boolean'){
 returthis._isMobile;
 }
 vascreenWidtthis.getScreenWidth();
 vafixViewPortsExperimenrendererModel.runningExperiments.FixViewpor||rendererModel.runningExperiments.fixviewport;
 vafixViewPortsExperimentRunninfixViewPortsExperimen&(fixViewPortsExperiment.toLowerCase(=="new");
 if(!fixViewPortsExperiment){
 if(!this.isAppleMobileDevice()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 }
 vaisMobileScreenSizscreenWidt;
 vaisMobileUserAgenfalse;
 this._isMobilisMobileScreenSiz&this.isTouchScreen();
 returthis._isMobile;
 }

判断是否移动设备访问

functioisMobileUserAgent(){
 retur(/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
 }

判断是否苹果移动设备访问

functioisAppleMobileDevice(){
 retur(/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
 }

判断是否安卓移动设备访问

 functioisAndroidMobileDevice(){
 retur(/android/i.test(navigator.userAgent.toLowerCase()));
 }

判断是否Touch屏幕

functioisTouchScreen(){
 retur(('ontouchstartiwindow|window.DocumentTouc&documeninstanceoDocumentTouch);
 }

判断是否打开视窗

functioisViewportOpen({
 retur!!document.getElementById('wixMobileViewport');
 }

获取移动设备初始化大小

functiogetInitZoom(){
 if(!this._initZoom){
 vascreenWidtMath.min(screen.heightscreen.width);
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 this._initZooscreenWidt/document.body.offsetWidth;
 }
 returthis._initZoom;
 }

获取移动设备最大化大小

functiogetZoom(){
 vascreenWidt(Math.abs(window.orientation==Math.max(screen.heightscreen.widthMath.min(screen.heightscreen.width);
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 vaFixViewPortsExperimenrendererModel.runningExperiments.FixViewpor|rendererModel.runningExperiments.fixviewport;
 vaFixViewPortsExperimentRunninFixViewPortsExperimen&(FixViewPortsExperimen=="New|FixViewPortsExperimen=="new");
 if(FixViewPortsExperimentRunning){
 returscreenWidtwindow.innerWidth;
 }else{
 returscreenWidtdocument.body.offsetWidth;
 }
 }

获取移动设备屏幕宽度

functiogetScreenWidth(){
 vasmallerSidMath.min(screen.widthscreen.height);
 vafixViewPortsExperimenrendererModel.runningExperiments.FixViewpor|rendererModel.runningExperiments.fixviewport;
 vafixViewPortsExperimentRunninfixViewPortsExperimen&(fixViewPortsExperiment.toLowerCase(=="new");
 if(fixViewPortsExperiment){
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 smallerSidsmallerSide/window.devicePixelRatio;
 }
 }
 retursmallerSide;
 }

完美判断是否为网址

functioIsURL(strUrl{
 varegula/^\b(((https?|ftp):\/\/)?[-a-z-]+(\.[-a-z-]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|(([-])|([-]\d)|(\d\d)|([-]\d)|\d))\b(\/[-a-z-_:\@&?=+,.!\/~%\$]*)?)$/i
 i(regular.test(strUrl){
 returtrue;
 }els{
 returfalse;
 }
 }
getElementsByClassName
 .functiogetElementsByClassName(name{
 vatagdocument.getElementsByTagName('*'|document.all;
 vael[];
 fo(vatags.lengthi++{
 i(tags.className{
 vactags.className.split(');
 fo(vacs.lengthj++{
 i(nam=cs[j]{
 els.push(tags);
 break
 }
 }
 }
 }
 returels
}

获取页面高度

functiogetPageHeight(){
 vadocumentg.bodyg.documentElementg.compatMod="BackCompat"
 a
 g.documentElement;
 returMath.max(f.scrollHeighta.scrollHeightd.clientHeight);
 }

获取页面scrollLeft

functiogetPageScrollLeft(){
 vadocument;
 retura.documentElement.scrollLef|a.body.scrollLeft;
 }

获取页面可视宽度

functiogetPageViewWidth(){
 vadocumentd.compatMod="BackCompat"
 d.body
 d.documentElement;
 retura.clientWidth;
 }

获取页面宽度

functiogetPageWidth(){
 vadocumentg.bodyg.documentElementg.compatMod="BackCompat"
 a
 g.documentElement;
 returMath.max(f.scrollWidtha.scrollWidthd.clientWidth);
 }

获取页面scrollTop

functiogetPageScrollTop(){
 vadocument;
 retura.documentElement.scrollTo|a.body.scrollTop;
 }

获取页面可视高度

functiogetPageViewHeight({
 vadocumentd.compatMod="BackCompat"
 d.body
 d.documentElement;
 retura.clientHeight;
 }

去掉url前缀

functioremoveUrlPrefix(a){
 a=a.replace(/:/g,":").replace(/./g,".").replace(///g,"/");
 while(trim(a).toLowerCase().indexOf("http://")==){
 a=trim(a.replace(/http:\/\//i,""));
 }
 retura;
 }

随机数时间戳

functiouniqueId(){
 vaa=Math.random,b=parseInt;
 returNumber(neDate()).toString()+b(*a())+b(*a())+b(*a());
 }

全角半角转换

//iCase全到半,半到全,其他不转化
 functiochgCase(sStr,iCase){
 if(typeosSt!"string|sStr.lengt<|!(iCas==|iCas=)){
 retursStr;
 }
 vai,oRs=[],iCode;
 if(iCase){/*半->全*/
 for(i=i<sStr.length;i+=){
 iCodsStr.charCodeAt(i);
 if(iCod=){
 iCod;
 }elsif(iCod){
 iCod+;
 }
 oRs.push(String.fromCharCode(iCode));
 }
 }else{/*全->半*/
 for(i=i<sStr.length;i+=){
 iCodsStr.charCodeAt(i);
 if(iCod=){
 iCod;
 }elsif(iCod&iCod){
 iCod-;
 }
 oRs.push(String.fromCharCode(iCode));
 }
 }
 returoRs.join("");
 }

确认是否键盘有效输入值

functiocheckKey(iKey){
 if(iKe=|iKe=){returtrue;}/*空格和异常*/
 if(iKey>&iKe){returtrue;}/*数字*/
 if(iKey>&iKe){returtrue;}/*字母*/
 if(iKey>&iKe){returtrue;}/*数字键盘*/
 if(iKey>&iKe){returtrue;}/*数字键盘*/
 if(iKey>&iKe){returtrue;}/*符号*/
 if(iKey>&iKe){returtrue;}/*符号*/
 returfalse;
 }

获取网页被卷去的位置

 functiogetScrollXY({
 returdocument.body.scrollTo{
 xdocument.body.scrollLeft,
 ydocument.body.scrollTop
 }{
 xdocument.documentElement.scrollLeft,
 ydocument.documentElement.scrollTop
 }
 }

日期格式化函数+调用方法

Date.prototype.formafunction(format){
 va{
 "M+this.getMonth()+//month
 "d+this.getDate()//day
 "h+this.getHours()//hour
 "m+this.getMinutes()//minute
 "s+this.getSeconds()//second
 "q+Math.floor((this.getMonth()+)/)//quarter
 "Sthis.getMilliseconds(//millisecond
 };
 if(/(y+)/.test(format)format=format.replace(RegExp.$,
 (this.getFullYear()+"").substr(RegExp.$.length));
 for(vaio){
 if(neRegExp("("+")").test(format))
 formaformat.replace(RegExp.$,RegExp.$.length==o[k:(""o[k]).substr((""o[k]).length));
 }
 returformat;
 }
 alert(neDate().format("yyyy-MM-dhh:mm:ss"));

时间个性化输出功能

./*
 .、s显示为“刚刚”
 .、>mi&min显示与当前时间差“XX分钟前”
 .、>mi&day显示与当前时间差“今XX:XX”
 .、>da&year显示日期“XX月XXXX:XX”
 .、>year显示具体日期“XXXX年XX月XXXX:XX”
 .*/
 .functiotimeFormat(time){
 vadatneDate(time),
 curDatneDate(),
 yeadate.getFullYear(),
 montdate.getMonth(,
 dadate.getDate(),
 houdate.getHours(),
 minutdate.getMinutes(),
 curYeacurDate.getFullYear(),
 curHoucurDate.getHours(),
 timeStr;
 if(yeacurYear){
 timeStyea+'年'mont+'月'da+''hou+':'minute;
 }else{
 vapastTimcurDatdate,
 pastpastTime/;
 if(pastcurHour){
 timeStmont+'月'da+''hou+':'minute;
 }elsif(past>){
 timeSt'今hou+':'minut+'分';
 }else{
 vapastcurDate.getMinutes(minute;
 if(past){
 timeStpast+'分钟前';
 }else{
 timeSt'刚刚';
 }
 }
 }
 returtimeStr;
 }

解决offsetX兼容性问题

 ./针对火狐不支持offsetX/Y
 .functiogetOffset(e){
 vatargee.target/当前触发的目标对象
 eventCoord,
 pageCoord,
 offsetCoord;
 /计算当前触发元素到文档的距离
 pageCoorgetPageCoord(target);
 /计算光标到文档的距离
 eventCoor{
 window.pageXOffsee.clientX,
 window.pageYOffsee.clientY
 };
 /相减获取光标到第一个定位的父元素的坐标
 offsetCoor{
 eventCoord.pageCoord.X,
 eventCoord.pageCoord.Y
 };
 returoffsetCoord;
 .}
 .functiogetPageCoord(element){
 vacoor};
 /计算从当前触发元素到根节点为止,
 /各offsetParen元素offsetLefoffsetTo值之和
 whil(element){
 coord.+element.offsetLeft;
 coord.+element.offsetTop;
 elemenelement.offsetParent;
 }
 returcoord;
 .}
常用的正则表达式
 .//正整数
 ./^[-]*[-][-]*$/;
 .//负整数
 ./^-[-]*[-][-]*$/;
 .//正浮点数
 ./^(([-]+\.[-]*[-][-]*)|([-]*[-][-]*\.[-]+)|([-]*[-][-]*))$/;
 .//负浮点数
 ./^(-(([-]+\.[-]*[-][-]*)|([-]*[-][-]*\.[-]+)|([-]*[-][-]*)))$/;
 .//浮点数
 ./^(-?\d+)(\.\d+)?$/;
 .//email地址
 ./^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
 .//url地址
 ./^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/;
 .或:^http:\/\/[A-Za-z-]+\.[A-Za-z-]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*
.//年/月/日(年-月-日、年.月.日)
 ./^(|)\d\d[/.]([-]|[])[/.]([-]|[][-]|[])$/;
 .//匹配中文字符
 ./[\ue-\ufa]/;
 .//匹配帐号是否合法(字母开头,允许-字节,允许字母数字下划线)
 ./^[a-zA-Z][a-zA-Z-_]{,}$/;
 .//匹配空白行的正则表达式
 ./\n\s*\r/;
 .//匹配中国邮政编码
 ./[-]\d{}(?!\d)/;
 .//匹配身份证
 ./\d{}|\d{}/;
 .//匹配国内电话号码
 ./(\d{}-|\d{}-)?(\d{}|\d{})?/;
 .//匹配IP地址
 ./(([-]\d|[-]|[]?\d\d?)\.){}([-]\d|[-]|[]?\d\d?)/;
 .//匹配首尾空白字符的正则表达式
 ./^\s*|\s*$/;
 .//匹配HTML标记的正则表达式
 .(\S*?)[^>]*>.*?|.*/>;
 .//sq语句
 .^(select|drop|delete|create|update|insert).*$
 .//提取信息中的网络链接
 .(h|H)(r|R)(e|E)(f|F**('|")?(\w|\\|\/|\.)+('|"*|>)?
 .//提取信息中的邮件地址
 .\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
 .//提取信息中的图片链接
 .(s|S)(r|R)(c|C**('|")?(\w|\\|\/|\.)+('|"*|>)?
 .//提取信息中I地址
 .(\d+)\.(\d+)\.(\d+)\.(\d+)
 .//取信息中的中国手机号码
 .()**\d{}
 .//提取信息中的中国邮政编码
 .[-]{}(\d+){}
 .//提取信息中的浮点数(即小数)
 .(-?\d*)\.?\d+
 .//提取信息中的任何数字
 .(-?\d*)(\.\d+)?
 .//电话区号
 .^\d{,}$
 .//腾Q号
 .^[-]*[-][-]*
.//帐号(字母开头,允-字节,允许字母数字下划线)
 .^[a-zA-Z][a-zA-Z-_]{,}
.//中文、英文、数字及下划线
 .^[\ue-\ufa_a-zA-Z-]+$
返回顶部的通用方法
 .functiobackTop(btnId{
 vabtdocument.getElementById(btnId);
 vadocument.documentElement;
 vadocument.body;
 window.onscrolset;
 btn.style.displa"none";
 btn.onclicfunction({
 btn.style.displa"none";
 window.onscrolnull;
 this.timesetInterval(function({
 d.scrollTo-Math.ceil((d.scrollTob.scrollTop.);
 b.scrollTo-Math.ceil((d.scrollTob.scrollTop.);
 i((d.scrollTob.scrollTop=clearInterval(btn.timerwindow.onscrolset);
 });
 };
 functioset({
 btn.style.displa(d.scrollTob.scrollTo'block'"none"
 }
 .};
 .backTop('goTop');
获得URL中GET参数值
 ./用法:如果地址test.htm?t=&t=&t=那么能取得:GET["t"]GET["t"]GET["t"]
 .functioget_get(){
 querystwindow.location.href.split("?")
 if(querystr[]){
 GETquerystr[].split("&");
 GE[];
 for(i=;i<GETs.length;i++){
 tmp_arGETs.split("=")
 key=tmp_arr[]
 GET[keytmp_arr[]
 }
 }
 returquerystr[];
 .}
打开一个窗体通用方法
 .functioopenWindow(url,windowName,width,height){
 vaparseInt(screen.widt.(widt.);
 vaparseInt(screen.heigh.(heigh.);
 vaisMSIE(navigator.appNam="MicrosofInterneExplorer");
 i(isMSIE{
 va"resizable=,location=no,scrollbars=no,width=";
 p+width;
 p+",height=";
 p+height;
 p+",left=";
 p+x;
 p+",top=";
 p+y;
 retvawindow.open(urlwindowNamep);
 els{
 vawiwindow.open(url"ZyiisPopup""top=",left=",scrollbars=scrollbar",dialog=yes,modal=yes,width=widt",height=heigh",resizable=no);
 eval("trwin.resizeTo(widthheight)catch(e}");
 win.focus();
 }
 .}

提取页面代码中所有网址

 vaadocument.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\]*$/igm,"");
 alert(aa);

清除相同的数组
 String.prototype.unique=function(){
 vax=this.split(/[\r\n]+/);
 vay='';
 for(vai=;i<x.length;i++){
 if(!neRegExp("^"+x.replace(/([^\w])/ig,"\\$")+"$","igm").test(y)){
 y+=x+"\r\n"
 }
 }
 retury
 };

按字母排序,对每行进行数组排序

 functioSetSort(){
 vatext=K.value.split(/[\r\n]/).sort().join("\r\n");//顺序
 vatest=K.value.split(/[\r\n]/).sort().reverse().join("\r\n");//反序
 K.value=K.value!=text?text:test;
 }

字符串反序
 functioIsReverse(text){
 returtext.split('').reverse().join('');
 }

清除html代码中的脚本

 functioclear_script(){
 K.value=K.value.replace(/<script.*?>[\s\S]*?<\/script>|\s+on[a-zA-Z]{,}\s?=\s?"[\s\S]*?"|\s+on[a-zA-Z]{,}\s?=\s?'[\s\S]*?'|\s+on[a-zA-Z]{,}\s?=[>]+/ig,"");
 }
 动态执行JavaScript脚本
 functiojavascript(){
 try{
 eval(K.value);
 }catch(e){
 alert(e.message);
 }
 }

动态执行VBScript脚本

 functiovbscript(){
 try{
 vascript=document.getElementById("K").value;
 if(script.trim()=="")return;
 window.execScript('OErroResumNex\n'+script+'\IErr.Number<>The\MsgBo"请输入正确的VBScript脚本!",,"脚本错误!\EnIf',"vbscript")
 }catch(e){
 alert(e.message);
 }
 }

金额大写转换函数

 functiotransform(tranvalue{
 tr{
 va;
 vadneArray("""万""亿")//大单位
 vadneArray("拾""佰""仟")//小单位
 vadneArray("零""壹""贰""叁""肆""伍""陆""柒""捌""玖")//整数部分用
 //以下是小写转换成大写显示在合计大写的文本框
//分离整数与小数
 vasourcsplits(tranvalue);
 vanusource[];
 vadisource[];
 //转换整数部分
 va//计小单位
 va//计大单位
 vasu;
 vast"";
 valesource[].length//整数的长度
 fo(<leni++{
 vasource[].charAt(lei)//取得某个位数上的数字
 vab;
 i(l>{
 bsource[].charAt(le)//取得某个位数前一位上的数字
 }
 susuNumber(n);
 i(su!{
 stdw[Number(n)].concat(str)//取得该数字对应的大写数字,并插入到str字符串的前面
 i(=''su;
 }
 i(l>//在数字范围内
 i(!//加小单位
 i(b!{
 stdw[k].concat(str);
 }
 k++;
 els//不加小单位,加大单位
 ;
 vatemstr.charAt();
 i(tem="万|tem="亿"//若大单位前没有数字则舍去大单位
 ststr.substr(str.lengt);
 stdw[k].concat(str);
 su;
 }
 }
 i(=)//小单位到千则大单位进一
 k++;
 }
 }
 //转换小数部分
 vastrdi"";
 i(di!""{
 vadig.charAt();
 i(!{
 strdi+dw[Number(n)"角"//加数字
 }
 vadig.charAt();
 i(!{
 strdi+dw[Number(n)"分"//加数字
 }
 }
 st+"元strdig;
 catch(e{
 retur"元";
 }
 returstr;
}
//拆分整数与小数
functiosplits(tranvalue{
 vavaluneArray('''');
 temtranvalue.split(".");
 fo(vatemp.lengthi++{
 valutemp;
 }
 returvalue;
}

resize的操作

 (function(){
 vaffunction(){
 vadocument.documentElemendocument.documentElement.clientWidtdocument.body.clientWidth
 ,
 ,Element.extend(document.body)
 ,classnamb.className;
 if(r){
 //当窗体的宽度小于的时候执行相应的操作
 }else{
 //当窗体的宽度大于的时候执行相应的操作
 }
 }
 if(window.addEventListener){
 window.addEventListener('resize'function()fn()});
 }elsif(window.attachEvent){
 window.attachEvent('onresize'function()fn()});
 }
 fn();
 })();

实现base64解码

 functiobase_decode(data){
 vab"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=";
 vaooohhhhbits,a,de"",tmp_ar[];
 i(!datareturdata}
 dat+'';
 d{
 hb.indexOf(data.charAt(i++));
 hb.indexOf(data.charAt(i++));
 hb.indexOf(data.charAt(i++));
 hb.indexOf(data.charAt(i++));
 bith<h<h<h;
 obit>xff;
 obit>xff;
 obitxff;
 i(h={
 tmp_arr[ac++String.fromCharCode(o);
 elsi(h={
 tmp_arr[ac++String.fromCharCode(oo);
 els{
 tmp_arr[ac++String.fromCharCode(ooo);
 }
 whil(data.length);
 detmp_arr.join('');
 deutf_decode(dec);
 returdec;
 }

实现utf8解码

 .functioutf_decode(str_data){
 vatmp_ar[],,a,,,;str_dat+'';
 whil(str_data.length{
 str_data.charCodeAt(i);
 i({
 tmp_arr[ac++String.fromCharCode(c);
 i++;
 elsi}
 returtmp_arr.join('');
 }

获取窗体可见范围的宽与高

 .functiogetViewSize(){
 vade=document.documentElement;
 vadb=document.body;
 vaviewW=de.clientWidth==db.clientWidtde.clientWidth;
 vaviewH=de.clientHeight==db.clientHeighde.clientHeight;
 returArray(view,viewH);
 }

断鼠标是否移出事件

 functioisMouseOut(ehandler{
 i(e.typ!='mouseout'{
 returfalse;
 }
 varelte.relatedTargee.relatedTargee.typ=='mouseoute.toElemene.fromElement;
 whil(relt&relt!=handler{
 reltreltg.parentNode;
 }
 retur(relt!=handler);
 }

半角转换为全角函数

 .functioToDBC(str){
 varesul'';
 for(vai=str.lengthi++){
 codstr.charCodeAt(i);
 if(cod>&cod<){
 resul+String.fromCharCode(str.charCodeAt(i);
 }elsi(cod=){
 resul+String.fromCharCode(str.charCodeAt(i);
 }else{
 resul+str.charAt(i);
 }
 }
 returresult;
 }

全角转换为半角函数
 .functioToCDB(str){
 varesul'';
 for(vai=str.lengthi++){
 codstr.charCodeAt(i);
 if(cod&cod<){
 resul+String.fromCharCode(str.charCodeAt(i);
 }elsi(cod=){
 resul+String.fromCharCode(str.charCodeAt();
 }else{
 resul+str.charAt(i);
 }
 }
 returresult;
 }
(0)

相关推荐

  • JavaScript子窗口调用父窗口变量和函数的方法

    本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法.分享给大家供大家参考.具体如下: 示例1:子窗口是新打开的窗口 父窗口: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.

  • 用函数模板,写一个简单高效的 JSON 查询器的方法介绍

    JSON可谓是JavaScript的亮点,它能用优雅简练的代码实现Object和Array的初始化.同样是基于文本的数据定义,它比符号分隔更有语义,比XML更简洁.因此越来越多的JS开发中,使用它作为数据的传输和储存. JS数组内置了不少有用的方法,方便我们对数据的查询和筛选.例如我们有一堆数据: 复制代码 代码如下: var heros = [        // 名============攻=====防=======力量====敏捷=====智力====        {name:'冰室女巫

  • javascript的函数、创建对象、封装、属性和方法、继承

    一,function 从一开始接触到js就感觉好灵活,每个人的写法都不一样,比如一个function就有N种写法 如:function showMsg(){},var showMsg=function(){},showMsg=function(){} 似乎没有什么区别,都是一样的嘛,真的是一样的吗,大家看看下面的例子 复制代码 代码如下: ///----------------------------------------------------------------------------

  • JavaScript函数的4种调用方法详解

    在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造器形式.以及apply形式.这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几种调用形式. 本文主要内容: 1.分析函数的四种调用形式2.弄清楚函数中this的意义3.明确构造函对象的过程4.学会使用上下文调用函数 一.函数调用形式 函数调用形式是最常见的形式,也是最

  • js函数调用常用方法详解

    来源 javascript语言精粹.这不是书上的源代码. js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方法调用模式 函数调用模式 构造器调用模式 apply调用模式 下面我们来看看一些实例更好理解. 1:方法调用模式 请注意this此时指向myobject. 复制代码 代码如下: /*方法调用模式*/ var myobject={ value:

  • js中匿名函数的创建与调用方法分析

    本文实例分析了js中匿名函数的创建与调用方法.分享给大家供大家参考.具体实现方法如下: 匿名函数就是没有名字的函数了,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值,很多新手朋友对于匿名函数不了解.这里就来分析一下. function 函数名(参数列表){函数体;} 如果是创建匿名函数,那就应该是: function(){函数体;} 因为是匿名函数,所以一般也不会有参数传给他. 为什么要创建匿名函数呢?在什么情况下会使用到匿

  • javascript trim函数在IE下不能用的解决方法

    javascript 的trim 函数在firefox 下面使用没有问题 <script language="javascript"> var test1 = " aa "; test1 = test1.toString(); test1 = test1.trim(); </script> 在火狐下这样用没有问题, 但是在IE下就报错 那么我们可以修改一下 String.prototype.trim=function(){return thi

  • JS中获取函数调用链所有参数的方法

    function getCallerArgument(){ var result = []; var slice = Array.prototype.slice; var caller = arguments.callee.caller; while(caller){ result = result.concat(slice.call(caller.arguments, 0)); caller = caller.arguments.callee.caller; } return result;

  • PHP使用json_encode函数时不转义中文的解决方法

    本文实例讲述了PHP使用json_encode函数时不转义中文的解决方法.分享给大家供大家参考.具体方法如下: json_encode函数对于gbk中的中文字符是不会转换的或直接转换成空格了,本文就来给各位整理一个关于json不转义中文问题处理技巧,相信对大家有所帮助. 如果你调用 PHP 自带的 json_encode() 函数, 碰到中文时, 中文会被转义掉. 例如: 复制代码 代码如下: echo json_encode(array('你好')); // 输出: ["\u4f60\u597

  • Javascript 判断是否存在函数的方法

    复制代码 代码如下: window.onload=function(){ try{ if(test&&typeof(test)=="function"){ test(); }else{ alert("不存在的函数"); } }catch(e){ } } function test(){ alert("函数执行--"); } 如果不存在,会抛出异常,所以要加try--catch.

  • 解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法

    今天检查自己用JQuery+AJAX+PHP做的网站后台登录检测,发现登陆成功后执行页面跳转函数这段JavaScript(JS)代码特效在IE和谷歌浏览器Chrome下都可以很好地执行,兼容性还不错.结果到了火狐(FireFox)浏览器下setTimeout这个JS内置函数不执行了,无效了,也没报错!打开FireBUG指望它能检测出JS的错误,结果没用...Javascript(JS)脚本代码在各浏览器下的兼容是一个很头疼的问题,经过一番调试和搜索,终于解决了setTimeout这个JS代码在火

  • jquery与js函数冲突的两种解决方法

    如果您还有别的要求,想继续使用原先的$(),同时还需要与别的类库不冲突的话,还有两种解决方法 其一: 复制代码 代码如下: jQuery.noConflict(); jQuery(function($) { $("p").click(function() //在函数内继续可以使用jquery类库的$()方法 { alert($(this).text()); }) }) var JsCOM_cr = $("cr"); // 在函数外面,照样可以使用JsCOM.js的$

  • javascript定义函数的方法

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function functionName(parameters) { 执行的代码 } 函数声明后不会立即执行,会在我们需要的时候调用到. 实例 function myFunction(a, b) { return a * b; } 函数表达式 JavaScript 函数可以通过一个表达式定义. 函数表达式可以存储在变量中: 实例

  • 一个非常全面的javascript URL解析函数和分段URL解析方法

    一.URL解析函数 复制代码 代码如下: <script>  /** *@param {string} url 完整的URL地址 *@returns {object} 自定义的对象 *@description 用法示例:var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); myURL.file='index.html' myURL.hash= 'top' myURL.host= 'a

  • 多种方法实现当jsp页面完全加载完成后执行一个js函数

    方法1:如下程序,当页面完全加载后执行openTheIndexPage()方法 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>Telecommunications Data Collection System</title> <script t

  • javascript中使用replaceAll()函数实现字符替换的方法

    而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志). replace() The replace() method returns the string that results when you replace text matching its first argument (a regular expression) with the text of the second argument (a string). If the g (glob

  • js 把字符串当函数执行的方法

    并且用js去执行: function test(str){ alert(str); } window['test']('aaaaaaaaaaaaaaaaaaaaa'); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] ------------------------------- 方法一... function test(str){ alert(str); } eval('test("aaaaaaaaaaaaaaaaaaa")'); [Ctrl+A 全选 注:如需引入外部J

  • js使用split函数按照多个字符对字符串进行分割的方法

    本文实例讲述了js使用split函数按照多个字符对字符串进行分割的方法.分享给大家供大家参考.具体分析如下: js中的split()函数可以对字符串按照指定的符号进行分割,但是如果字符串中存在多个分割符号,js的split()函数是否还可以胜任呢,答案是肯定的,js的split()函数可以通过正则表达式实现多分隔符的字符串分割,调用也很简单,下面是详细范例. 下面的代码可以通过js split方法对字符串按照逗号分割 var mystring = "a,b,c,d,e"; var my

  • JavaScript的各种常见函数定义方法

    本文详细讲述了JavaScript的各种常见函数定义方法,分享给大家供大家参考.具体分析如下: 首先看一下JavaScript最常见的四种函数定义: 用Function构造函数定义的函数,代码如下: var multiply = new Function('x', 'y', 'return x * y;'); 函数声明,这种方式也是最为常见的一种: function multiply(x, y) { return x * y; } 函数表达式,声明为匿名函数然后赋值给一变量,很常见的方式: va

随机推荐