分享10个原生JavaScript技巧


Posted in Javascript onApril 20, 2015

1、实现字符串长度截取

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、获取域名主机

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、清除空格

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

4、替换全部

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

5、转义html标签

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

6、还原html标签

 function HtmlDecode(text) {

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

 }

7、时间日期格式转换

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、判断是否为数字类型

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

9、设置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、获取cookie值

function getCookie(name) {
   var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
   if (arr != null) return unescape(arr[2]);
   return null

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
优秀js开源框架-jQuery使用手册(1)
Mar 10 Javascript
Extjs Ajax 乱码问题解决方案
Apr 15 Javascript
javascript 解析后的xml对象的读取方法细解
Jul 25 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 Javascript
js日期相关函数总结分享
Oct 15 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
Dec 04 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
Vue程序调试的方法
Jun 17 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 #Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 #Javascript
浅谈javascript中call()、apply()、bind()的用法
Apr 20 #Javascript
javascript中callee与caller的区别分析
Apr 20 #Javascript
javascript正则表达式中的replace方法详解
Apr 20 #Javascript
javascript正则表达式基础知识入门
Apr 20 #Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 #Javascript
You might like
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
Javascript typeof 用法
2008/12/28 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Python中的pprint折腾记
2015/01/21 Python
Python argv用法详解
2016/01/08 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
护士辞职信模板
2014/01/20 职场文书
运动会通讯稿300字
2014/02/02 职场文书
道德演讲稿
2014/05/21 职场文书
电子商务专业自荐信
2014/06/02 职场文书
公安学专业求职信
2014/07/27 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
小学记事作文之200字
2019/08/06 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
如何Python使用re模块实现okenizer
2022/04/30 Python