函数就是包裹在花括号中的代码块,前面使用了关键词 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;
}
本文地址:https://www.stayed.cn/item/3788
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我