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 相关文章推荐
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
JS上传前预览图片实例
Mar 25 Javascript
js解析json读取List中的实体对象示例
Mar 11 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
jQuery找出网页上最高元素的方法
Mar 20 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
BootStrapValidator初使用教程详解
Feb 10 Javascript
jQuery文字轮播特效
Feb 12 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
May 07 Javascript
jquery实现上传文件进度条
Mar 26 jQuery
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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php xfocus防注入资料
2008/04/27 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
python接口自动化框架实战
2020/12/23 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
司机检讨书
2014/02/13 职场文书
课前三分钟演讲稿
2014/04/24 职场文书
优秀家长自荐材料
2014/08/26 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
《秋思》教学反思
2016/02/23 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis