函数就是包裹在花括号中的代码块,前面使用了关键词 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&{
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;
}