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

  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

  }