本文是小编在平时项目中收集整理的 javascript 常用函数方法,特别是 javascript 方法经常会用到,对 javascript 函数方法相关知识感兴趣的朋友一起学习吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
函数就是包裹在花括号中的代码块,前面使用了关键词 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)
- }
- 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&{
- str_data.charCodeAt();
- tmp_arr[ac++String.fromCharCode(((<());
- +;
- els{
- str_data.charCodeAt();
- str_data.charCodeAt();
- tmp_arr[ac++String.fromCharCode(((<((<());
- +;
- }
- }
- 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;
- }
来源: