html5不为空的函数,不得不分享的JavaScript常用方法函数集(上)

本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助。

1. 字符串长度截取

function cutstr(str, len) {

var temp,

icount = 0,

patrn = /[^\x00-\xff]/,

strre = "";

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

if (icount < len - 1) {

temp = str.substr(i, 1);

if (patrn.exec(temp) == null) {

icount = icount + 1

} else {

icount = icount + 2

}

strre += temp

} else {

break;

}

}

return strre + "..."

}

2. 替换全部

String.prototype.replaceAll = function(s1, s2) {

return this.replace(new RegExp(s1, "gm"), s2)

}

3. 清除空格

String.prototype.trim = function() {

var reExtraSpace = /^\s*(.*?)\s+$/;

return this.replace(reExtraSpace, "$1")

}

4. 清除左空格/右空格

function ltrim(s){ return s.replace( /^(\s*| *)/, ""); }

function rtrim(s){ return s.replace( /(\s*| *)$/, ""); }

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

String.prototype.startWith = function (s) {

return this.indexOf(s) == 0

}

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

String.prototype.endWith = function (s) {

var d = this.length - s.length;

return (d >= 0 && this.lastIndexOf(s) == d)

}

7. 转义html标签

function HtmlEncode(text) {

return text.replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>')

}

8. 时间日期格式转换

Date.prototype.Format = function(formatStr) {

var str = formatStr;

var Week = ['日', '一', '二', '三', '四', '五', '六'];

str = str.replace(/yyyy|YYYY/, this.getFullYear());

str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));

str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));

str = str.replace(/M/g, (this.getMonth() + 1));

str = str.replace(/w|W/g, Week[this.getDay()]);

str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());

str = str.replace(/d|D/g, this.getDate());

str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());

str = str.replace(/h|H/g, this.getHours());

str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());

str = str.replace(/m/g, this.getMinutes());

str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());

str = str.replace(/s|S/g, this.getSeconds());

return str

}

9. 判断是否为数字类型

function isDigit(value) {

var patrn = /^[0-9]*$/;

if (patrn.exec(value) == null || value == "") {

return false

} else {

return true

}

}

10. 设置cookie值

function setCookie(name, value, Hours) {

var d = new Date();

var offset = 8;

var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

var nd = utc + (3600000 * offset);

var exp = new Date(nd);

exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);

document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"

}

11. 获取cookie值

function getCookie(name) {

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

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

return null

}

12. 加入收藏夹

function AddFavorite(sURL, sTitle) {

try {

window.external.addFavorite(sURL, sTitle)

} catch(e) {

try {

window.sidebar.addPanel(sTitle, sURL, "")

} catch(e) {

alert("加入收藏失败,请使用Ctrl+D进行添加")

}

}

}

13. 设为首页

function setHomepage() {

if (document.all) {

document.body.style.behavior = 'url(#default#homepage)';

document.body.setHomePage('http://w3cboy.com')

} else if (window.sidebar) {

if (window.netscape) {

try {

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")

} catch(e) {

alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true")

}

}

var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);

prefs.setCharPref('browser.startup.homepage', 'http://w3cboy.com')

}

}

14. 加载样式文件

function LoadStyle(url) {

try {

document.createStyleSheet(url)

} catch(e) {

var cssLink = document.createElement('link');

cssLink.rel = 'stylesheet';

cssLink.type = 'text/css';

cssLink.href = url;

var head = document.getElementsByTagName('head')[0];

head.appendChild(cssLink)

}

}

15. 返回脚本内容

function evalscript(s) {

if(s.indexOf('

var arr = [];

while(arr = p.exec(s)) {

var p1 = /

var arr1 = [];

arr1 = p1.exec(arr[0]);

if(arr1) {

appendscript(arr1[1], '', arr1[2], arr1[3]);

} else {

p1 = /

arr1 = p1.exec(arr[0]);

appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);

}

}

return s;

}

16. 清除脚本内容

function stripscript(s) {

return s.replace(/.*?<\/script>/ig, '');

}

17. 动态加载脚本文件

function appendscript(src, text, reload, charset) {

var id = hash(src + text);

if(!reload && in_array(id, evalscripts)) return;

if(reload && $(id)) {

$(id).parentNode.removeChild($(id));

}

evalscripts.push(id);

var scriptNode = document.createElement("script");

scriptNode.type = "text/javascript";

scriptNode.id = id;

scriptNode.charset = charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset);

try {

if(src) {

scriptNode.src = src;

scriptNode.onloadDone = false;

scriptNode.onload = function () {

scriptNode.onloadDone = true;

JSLOADED[src] = 1;

};

scriptNode.onreadystatechange = function () {

if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) {

scriptNode.onloadDone = true;

JSLOADED[src] = 1;

}

};

} else if(text){

scriptNode.text = text;

}

document.getElementsByTagName('head')[0].appendChild(scriptNode);

} catch(e) {}

}

18. 返回按ID检索的元素对象

function $(id) {

return !id ? null : document.getElementById(id);

}

19. 跨浏览器绑定事件

function addEventSamp(obj,evt,fn){

if(!oTarget){return;}

if (obj.addEventListener) {

obj.addEventListener(evt, fn, false);

}else if(obj.attachEvent){

obj.attachEvent('on'+evt,fn);

}else{

oTarget["on" + sEvtType] = fn;

}

}

20. 跨浏览器删除事件

function delEvt(obj,evt,fn){

if(!obj){return;}

if(obj.addEventListener){

obj.addEventListener(evt,fn,false);

}else if(oTarget.attachEvent){

obj.attachEvent("on" + evt,fn);

}else{

obj["on" + evt] = fn;

}

}

21. 为元素添加on方法

Element.prototype.on = Element.prototype.addEventListener;

NodeList.prototype.on = function (event, fn) {、

[]['forEach'].call(this, function (el) {

el.on(event, fn);

});

return this;

};

以上就是本文的全部内容,喜欢的就收藏吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值