分享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 相关文章推荐
IE6下通过a标签点击切换图片的问题
Nov 14 Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
js实现可折叠展开的手风琴菜单效果
Sep 07 Javascript
基于jQuery实现美观且实用的倒计时实例代码
Dec 30 Javascript
谈谈JavaScript数组常用方法总结
Jan 24 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
深入理解JS的事件绑定、事件流模型
May 13 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
javascript的惯性运动实现代码实例
Sep 07 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版)
2012/08/21 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
php compact 通过变量创建数组
2016/11/15 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
python装饰器代码深入讲解
2021/03/01 Python
几个判断型的面试题
2012/07/03 面试题
早餐连锁店计划书
2014/01/08 职场文书
React配置子路由的实现
2021/06/03 Javascript
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
什么是Python装饰器?如何定义和使用?
2022/04/11 Python