javascript学习笔记之10个原生技巧


Posted in Javascript onMay 21, 2014

1、原生JavaScript实现字符串长度截取

function cutstr(str, len) {
    var temp;
    var icount = 0;
    var patrn = /[^\x00-\xff]/;
    var 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、原生JavaScript获取域名主机

function getHost(url) {
    var host = "null";
    if(typeof url == "undefined"|| null == url) {
        url = window.location.href;
    }
    var regex = /^\w+\:\/\/([^\/]*).*/;
    var match = url.match(regex);
    if(typeof match != "undefined" && null != match) {
        host = match[1];
    }
    return host;
}

3、原生JavaScript清除空格

String.prototype.trim = function() {
    var reExtraSpace = /^\s*(.*?)\s+$/;
    return this.replace(reExtraSpace, "$1")
}

4、原生JavaScript替换全部

String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2)
}

5、原生JavaScript转义html标签

function HtmlEncode(text) {
    return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
}

6、原生JavaScript还原html标签

function HtmlDecode(text) {
    return text.replace(/&/g, '&').replace(/"/g, '\"').replace(/</g, '<').replace(/>/g, '>')
}

7、原生JavaScript时间日期格式转换

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
}

8、原生JavaScript判断是否为数字类型

function isDigit(value) {
    var patrn = /^[0-9]*$/;
    if (patrn.exec(value) == null || value == "") {
        return false
    } else {
        return true
    }
}

9、原生JavaScript设置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;"
}

10、原生JavaScript获取cookie值

function getCookie(name) {
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null) return unescape(arr[2]);
    return null
}
Javascript 相关文章推荐
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
JS编程小常识很有用
Nov 26 Javascript
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
JS对象转换为Jquery对象实现代码
Dec 29 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
js滚轮事件兼容性问题需要注意哪些
Nov 15 Javascript
详解Vue组件之间的数据通信实例
Jun 17 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
jquery实现预览提交的表单代码分享
May 21 #Javascript
javascript制作的网页侧边弹出框思路及实现代码
May 21 #Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 #Javascript
Jquery的each里用return true或false代替break或continue
May 21 #Javascript
alert和confirm功能介绍
May 21 #Javascript
采用call方式实现js继承
May 20 #Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 #Javascript
You might like
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
python 处理dataframe中的时间字段方法
2018/04/10 Python
python list转矩阵的实例讲解
2018/08/04 Python
python url 参数修改方法
2018/12/26 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python 公共方法汇总解析
2019/09/16 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Python接口开发实现步骤详解
2020/04/26 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
如何实现一个自定义类的序列化
2012/05/22 面试题
遇到的Mysql的面试题
2014/06/29 面试题
自荐信格式技巧有哪些呢
2013/11/19 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript