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

1. 字符串长度截取

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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. 替换全部

?
1
2
3
String.prototype.replaceAll
=
function(s1,
s2) {
    return

this
.replace(new

RegExp(s1,
"gm"),
s2)
}

3. 清除空格

?
1
2
3
4
String.prototype.trim
=
function()
{
    var

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

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

4. 清除左空格/右空格

?
1
2
function

ltrim(s){
return

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

rtrim(s){
return

s.replace( /(\s*| *)$/,
"");
}

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

?
1
2
3
String.prototype.startWith
=
function

(s) {
    return

this
.indexOf(s)
== 0
}

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

?
1
2
3
4
String.prototype.endWith
=
function

(s) {
    var

d =
this.length
- s.length;
    return

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

7. 转义html标签

?
1
2
3
function

HtmlEncode(text) {
    return

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

8. 时间日期格式转换

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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. 判断是否为数字类型

?
1
2
3
4
5
6
7
8
function

isDigit(value) {
    var

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

(patrn.exec(value) ==
null

|| value ==
"")
{
        return

false
    }
else

{
        return

true
    }
}

10. 设置cookie值

?
1
2
3
4
5
6
7
8
9
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值

?
1
2
3
4
5
function

getCookie(name) {
    var

arr = document.cookie.match(
new

RegExp(
"(^|
)"

+ name +
"=([^;]*)(;|$)"));
    if

(arr !=
null)
return

unescape(arr[2]);
    return

null
}

12. 加入收藏夹

?
1
2
3
4
5
6
7
8
9
10
11
function

AddFavorite(sURL, sTitle) {
    try

{
        window.external.addFavorite(sURL,
sTitle)
    }
catch(e)
{
        try

{
            window.sidebar.addPanel(sTitle,
sURL,
"")
        }
catch(e)
{
            alert("加入收藏失败,请使用Ctrl+D进行添加")
        }
    }
}

13. 设为首页

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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. 加载样式文件

?
1
2
3
4
5
6
7
8
9
10
11
12
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. 返回脚本内容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function

evalscript(s) {
    if(s.indexOf('<script')
== -1)
return

s;
    var

p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig;
    var

arr = [];
    while(arr
= p.exec(s)) {
        var

p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
        var

arr1 = [];
        arr1
= p1.exec(arr[0]);
        if(arr1)
{
            appendscript(arr1[1],
'',
arr1[2], arr1[3]);
        }
else

{
            p1
= /<script(.*?)>([^\x00]+?)<\/script>/i;
            arr1
= p1.exec(arr[0]);
            appendscript('',
arr1[2], arr1[1].indexOf(
'reload=')
!= -1);
        }
    }
    return

s;
}

16. 清除脚本内容

?
1
2
3
function

stripscript(s) {
    return

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

17. 动态加载脚本文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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. 跨浏览器绑定事件

?
1
2
3
4
5
6
7
8
9
10
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. 跨浏览器删除事件

?
1
2
3
4
5
6
7
8
9
10
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方法

?
1
2
3
4
5
6
7
8
Element.prototype.on
= Element.prototype.addEventListener;
  
NodeList.prototype.on
=
function

(event, fn) {、
    []['forEach'].call(this,
function

(el) {
        el.on(event,
fn);
    });
    return

this
;
};

22. 为元素添加trigger方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Element.prototype.trigger
=
function

(type, data) {
    var

event = document.createEvent(
'HTMLEvents');
    event.initEvent(type,
true,
true);
    event.data
= data || {};
    event.eventName
= type;
    event.target
=
this;
    this.dispatchEvent(event);
    return

this
;
};
NodeList.prototype.trigger
=
function

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

(el) {
        el['trigger'](event);
    });
    return

this
;
};

23. 检验URL链接是否有效

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function

getUrlState(URL){
    var

xmlhttp =
new

ActiveXObject(
"microsoft.xmlhttp");
    xmlhttp.Open("GET",URL,
false); 
    try
            xmlhttp.Send();
    }catch(e){
    }finally{
        var

result = xmlhttp.responseText;
        if(result){
            if(xmlhttp.Status==200){
                return(true);
             }else{
                   return(false);
             }
         }else{
             return(false);
         }
    }
}

24. 格式化CSS样式代码

?
1
2
3
4
5
6
7
8
9
function

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

s;
}

25. 压缩CSS样式代码

?
1
2
3
4
5
6
7
8
function

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

(s ==
null)
?
""

: s[1];
}

26. 获取当前路径

?
1
2
3
4
5
6
var

currentPageUrl =
"";
if

(
typeof

this
.href
===
"undefined")
{
    currentPageUrl
= document.location.toString().toLowerCase();
}else

{
    currentPageUrl
=
this.href.toString().toLowerCase();
}

27. 判断是否移动设备

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function

isMobile(){
    if

(
typeof

this
._isMobile
===
'boolean'){
        return

this
._isMobile;
    }
    var

screenWidth =
this.getScreenWidth();
    var

fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport ||rendererModel.runningExperiments.fixviewport;
    var

fixViewPortsExperimentRunning = fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase() ===
"new");
    if(!fixViewPortsExperiment){
        if(!this.isAppleMobileDevice()){
            screenWidth
= screenWidth/window.devicePixelRatio;
        }
    }
    var

isMobileScreenSize = screenWidth < 600;
    var

isMobileUserAgent =
false;
    this._isMobile
= isMobileScreenSize &&
this.isTouchScreen();
    return

this
._isMobile;
}

28. 判断是否移动设备访问

?
1
2
3
function

isMobileUserAgent(){
    return

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

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

?
1
2
3
function

isAppleMobileDevice(){
    return

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

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

?
1
2
3
function

isAndroidMobileDevice(){
    return

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

31. 判断是否Touch屏幕

?
1
2
3
function

isTouchScreen(){
    return

((
'ontouchstart'

in

window) || window.DocumentTouch && document
instanceof

DocumentTouch);
}

32. 判断是否打开视窗

?
1
2
3
function

isViewportOpen() {
    return

!!document.getElementById(
'wixMobileViewport');
}

33. 获取移动设备初始化大小

?
1
2
3
4
5
6
7
8
9
10
function

getInitZoom(){
    if(!this._initZoom){
        var

screenWidth = Math.min(screen.height, screen.width);
        if(this.isAndroidMobileDevice()
&& !
this.isNewChromeOnAndroid()){
            screenWidth
= screenWidth/window.devicePixelRatio;
        }
            this._initZoom
= screenWidth /document.body.offsetWidth;
        }
    return

this
._initZoom;
}

34. 获取移动设备最大化大小

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function

getZoom(){
    var

screenWidth = (Math.abs(window.orientation) === 90) ? Math.max(screen.height, screen.width) : Math.min(screen.height, screen.width);
    if(this.isAndroidMobileDevice()
&& !
this.isNewChromeOnAndroid()){
        screenWidth
= screenWidth/window.devicePixelRatio;
    }
    var

FixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
    var

FixViewPortsExperimentRunning = FixViewPortsExperiment && (FixViewPortsExperiment ===
"New"

|| FixViewPortsExperiment ===
"new");
    if(FixViewPortsExperimentRunning){
        return

screenWidth / window.innerWidth;
    }else{
        return

screenWidth / document.body.offsetWidth;
    }
}

35. 获取移动设备屏幕宽度

?
1
2
3
4
5
6
7
8
9
10
11
function

getScreenWidth(){
    var

smallerSide = Math.min(screen.width, screen.height);
    var

fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
    var

fixViewPortsExperimentRunning = fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase() ===
"new");
    if(fixViewPortsExperiment){
        if(this.isAndroidMobileDevice()
&& !
this.isNewChromeOnAndroid()){
            smallerSide
= smallerSide/window.devicePixelRatio;
        }
    }
    return

smallerSide;
}

36. 完美判断是否为网址

?
1
2
3
4
5
6
7
8
function

IsURL(strUrl) {
    var

regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
    if

(regular.test(strUrl)) {
        return

true
;
    }else

{
        return

false
;
    }
}

JavaScript学习总结(9)——JS常用函数(一)的更多相关文章

  1. JavaScript的使用以及JS常用函数(JS 遍历数组和集合)

    JavaScript入门 学习总结 1. 什么是 JavaScript 2. JavaScript 的特点 3. JS的使用 编写位置 基本语法 变量 打印变量 数据类型 innerHTML和inne ...

  2. ecshop里提出来的js常用函数

    目录 Utils.js jquery.listTable.js 使用例子: ecshop里提出来的js常用函数 Utils.js /* $Id : utils.js 5052 2007-02-03 1 ...

  3. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  4. js常用函数和常用技巧

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  5. Javascript学习记录——原生JS实现旋转木马特效

    昨天学习到了JS特效部分,然后老师讲了旋转木马特效的实现,如上图.不过只是讲了通过点击箭头实现图片的切换,对于点击图片本身以及二者联动却是没有讲解. 本着一颗追求完美的心,今天花费了一个中午终于将整个 ...

  6. JavaScript学习总结-技巧、有用函数、简洁方法、编程细节

    整理JavaScript方面的一些技巧.比較有用的函数,常见功能实现方法,仅作參考 变量转换 //edit http://www.lai18.com var myVar = "3.14159 ...

  7. JavaScript学习总结-技巧、实用函数、简洁方法、编程细节

    整理JavaScript方面的一些技巧,比较实用的函数,常见功能实现方法,仅作参考 变量转换 var myVar = "3.14159", str = ""+ ...

  8. 性能测试学习第二天-----loadrunner常用函数大全及设置项

    常用函数大全: 1,C语言参数转web参数 lr_save_string("aaa","param"):将字符串“aaa”或者一个字符串变量,转变成LR的参数{ ...

  9. JavaScript学习总结(11)——JS常用函数(二)

    37. getElementsByClassName ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function getElementsByClassName( ...

随机推荐

  1. PostgreSQL指定用户可访问的数据库pg_hba.conf

    进入指定目录: # cd /var/lib/pgsql/9.3/data/ 使用vi编辑pg_hba.conf文件 # vi pg_hba.conf 以上配置为所有IP及网关都允许访问,使用MD5认证 ...

  2. 由防止表单重复提交引发的一系列问题--servletRequest的复制、body值的获取

    @Time:2019年1月4日 16:19:19 @Author:QGuo   背景:最开始打算写个防止表单重复提交的拦截器:网上见到一种不错的方式,比较合适前后端分离,校验在后台实现: 我在此基础上 ...

  3. C# 快捷使用自定义配置节点

    C#除了appSettings和connectionStrings默认配置外还允许用户自定义使用配置.C# 提供3中简单的自定义配置,配置文件如下 <?xml version="1.0 ...

  4. EBS TimeZone问题

    记录问题 :  http://blog.csdn.net/cymm_liu/article/details/29234919     --     Oracle 数据库中的 时间 时区 http:// ...

  5. [BZOJ5305][HAOI2018]苹果树 组合数学

    链接 小 C 在自己家的花园里种了一棵苹果树, 树上每个结点都有恰好两个分支. 经过细心的观察, 小 C 发现每一天这棵树都会生长出一个新的结点. 第一天的时候, 果树会长出一个根结点, 以后每一天, ...

  6. POJ 3263 差分+set判重

    题意: 思路: 对于每一个区间 [a,b] [a+1,b-1]肯定是比a,b低至少1的 因为题目要求最大值 所以就直接差分一下 搞之 (复杂度 O(n)) Discuss里说有重复的数据 用set判一 ...

  7. GHO文件内IE主页的修改方法

    修改方法: 1.先打开映像  GHOSTexp 打开GHO文件 2.提取注册表文件  C:\WINDOWS\SYSTEM32\CONFIG 下就是系统的注册表文件,详细见下 3.打开本地的注册表,加载 ...

  8. happy Mom ——php mysqli DES加密

    看完<爱你就像爱生命>这本书,真的看出小波哥很有才,跟小波哥比起来,我唯一拿的出手的可能就是我比他的颜值了.想起一句话,人不是因为美丽而可爱,而是因为可爱而美丽.所以我对我的要求是,继续修 ...

  9. JS模式

    策略 命令 迭代器 代理 组合 发布/订阅 单例 享元 职责链 中介者 装饰者 状态 适配器 设计原则: 单一职责.最少知识.开放-封闭

  10. XML解析——DOM解析

    XML:可扩展性标记语言,主要用来传输和存储数据,相对于HTML的各种标签规范,XML的标签可以让用户根据语义自己进行定义,适用于web传输. JSON和XML的区别: (1).XML定义 扩展标记语 ...