判断数据类型

 function isType(type) {
return function(obj) {
  return {}.toString.call(obj) == "[object " + type + "]"
}
} var isObject = isType("Object");
var isString = isType("String");
var isArray = isType("Array");
var isFunction = isType("Function");
var isUndefined = isType("Undefined"); //使用方法
isString('sss'); //true

判断是否是PC端

 function isPC() {
  var userAgentInfo = navigator.userAgent, Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'],
flag = true;
  for (var i = 0; i < Agents.length; i++) {
  if (userAgentInfo.indexOf(Agents[i]) > 0) {
  flag = false;
break;
}
}
return flag;
} //使用方法
isPC(); //true为pc端

判断是否微信浏览器

 function isWX() {
  var ua = window.navigator.userAgent.toLowerCase();
3   return ua.match(/MicroMessenger/i) == 'micromessenger';
} //使用方法
isWX(); //true为微信浏览器

生成随机字符串(可指定长度,默认32)

 function randomNumber(len) {
len = len || 32;
var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz12345678'; //默认去掉了容易混淆的字符
var maxPos = chars.length,
pwd = '';
for (var i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
} //使用方法
randomNumber(8); //可用于文件路径随机数

生成唯一标识GUID(订单号等使用)

 function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
return uuid;
}; // 使用方法
generateUUID(); //需要唯一标识时可用

获取网址的参数值(单个值)

function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
} // http://xxxx.com/?name=hehe
getQueryString("name");    //hehe

获取网址的参数值(返回所有参数为JSON数据)

function GetUrlParam(){
let url = document.location.toString();
let arrObj = url.split("?");
let params = Object.create(null)
if (arrObj.length > 1){
arrObj = arrObj[1].split("&");
arrObj.forEach(item=>{
item = item.split("=");
params[item[0]] = item[1]
})
}
return params;
}
// ?a=1&b=2&c=3 ==> {a: "1", b: "2", c: "3"}

数组去重

// 利用对象属性名不能重复
function toRepeat(a, b){
let arr = a.concat(b);
let result = [];
let obj = {}; for (let i of arr) {
if (!obj[i]) {
result.push(i)
obj[i] = 1
}
} return result;
} // ES6 方法 利用new Set()的数组元素唯一性
function distinct(a, b) {
return Array.from(new Set([...a, ...b]))
}

去除字符串空格

// type 1-所有空格,2-前后空格,3-前空格,4-后空格
function getTrim(str, type){
switch () {
case 1: return str.replace(/\s+/g, "");
case 2: return str.replace(/(^\s*)|(\s*$)/g, "");
case 3: return str.replace(/(^\s*)/g, "");
case 4: return str.replace(/(\s*$)/g, "");
default: return str;
}
} // 不得不说,正则是真的好用

格式化时间

function dateFormater(formater, t){
let date = t ? new Date(t) : new Date(),
Y = date.getFullYear() + '',
M = date.getMonth() + 1,
D = date.getDate(),
H = date.getHours(),
m = date.getMinutes(),
s = date.getSeconds();
return formater.replace(/YYYY|yyyy/g,Y)
.replace(/YY|yy/g,Y.substr(2,2))
.replace(/MM/g,(M<10?'0':'') + M)
.replace(/DD/g,(D<10?'0':'') + D)
.replace(/HH|hh/g,(H<10?'0':'') + H)
.replace(/mm/g,(m<10?'0':'') + m)
.replace(/ss/g,(s<10?'0':'') + s)
}
// dateFormater('YYYY-MM-DD HH:mm', t) ==> 2019-06-26 18:30
// dateFormater('YYYYMMDDHHmm', t) ==> 201906261830
// 转换时间格式
'2019年06月28日'.replace(/(\d{4}).(\d{1,2}).(\d{1,2}).+/mg, '$1-$2-$3') ===> 2019-06-28 '2019-06-28'.replace(/(\d{4}).(\d{1,2}).(\d{1,2}).+/mg, '$1年$2月$3日') ===> 2019年06月28日

禁止右键、选择、复制

['contextmenu', 'selectstart', 'copy'].forEach(function(ev){
document.addEventListener(ev, function(event){
return event.returnValue = false
})
});

一部分是项目中遇到的问题,一部分是网上收集的方法

-- 时间问题,待续 --

javascript一些实用的方法的更多相关文章

  1. javascript代码实用方法实现

    javascript代码实用方法实现   针对现在大家平时开发中,都会写一些重复性的js处理代码,今天总结了几个比较常用的方法实现.获取get请求参数.去字符串空格.   1.获取get请求中的参数  ...

  2. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  3. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  4. ASP.NET开发常用简单实用的方法

    ASP.NET开发简单实用的方法 一.打印和导出 打印和导出EXCEL在目前ASP.NET开发中可以说是必要的,有时候针对不同数据难易程度下,用有效快速的方法是解决办法的有效途径之一. 1.打印 后台 ...

  5. 初学者学习JavaScript的实用技巧!

    Javascript是一种高级编程语言,通过解释执行.它是一门动态类型,面向对象(基于原型)的直译语言.它已经由欧洲电脑制造商协会通过ECMAScript实现语言标准化,它被世界上的绝大多数网站所使用 ...

  6. Android和JavaScript相互调用的方法

    转载地址:http://www.jb51.net/article/77206.htm 这篇文章主要介绍了Android和JavaScript相互调用的方法,实例分析了Android的WebView执行 ...

  7. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  8. JavaScript document属性和方法

    JavaScript document属性和方法 --------------------------------------------属性: 1. Attributes     存储节点的属性列表 ...

  9. 将JavaScript 插入网页的方法

    将JavaScript 插入网页的方法 使用Javascript代码. 插入JavaScript 与在网页中插入CSS的方式相似.使用下面的代码可以在网页中插入JavaScript: ... 其中的. ...

随机推荐

  1. 通过德鲁伊druid给系统增加监控

    系统在线上运行了一段时间后,比如一年半载的,我们发现系统可能存在某些问题,比如执行系统变慢了,比如某些spring的bean无法监控各种调用情况. 触发到db的各种执行情况,这个时候,我们就需要一个工 ...

  2. PHP mysqli_close() 函数

    关闭先前打开的数据库连接: <?php $con=mysqli_connect("localhost","my_user","my_passwo ...

  3. 009_STM32程序移植之_内部falsh

    flash  模拟  EEPROM  实验 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC---- ...

  4. 004_linux驱动之_class_create创建一个设备类

    (一)解析:class_create函数和class_destroy函数     创建一个类         和        删除一个类.   (二)class_create函数原型   struc ...

  5. 关于不用Hashtable

    hashmap 与hashtable 很类似,主要区别是hashtable 有用synchronized进行线程同步,hashmap没有.然而,建议少用hashtable,在单线程中,无需做线程控制, ...

  6. mkfs/mk2fs/fsck/e2fsck/tune2fs/blkid

    mkfs 格式化创建Linux文件系统的工具 centos 6 使用xfs文件系统 fsck 检测及修复文件系统的工具 当磁盘出现逻辑错误的时候,可以尝试修复. fsck -t ext2|ext3 / ...

  7. [Luogu] U18430 萌萌的大河

    https://www.luogu.org/problemnew/show/U18430 思路比较好想 树链剖分 对于1操作 只需将以该点为根的子树打标记,将所有数存入数组排序 每次进行1操作时,判断 ...

  8. ECMAScript 5.0 基础语法(下)“稍微重点一点点”

    接上篇 七.常用内置对象(复杂数据类型)(重点) (1)数组Array 创建:例  var colors = ['red','blue','green']       #推荐这样,因为简单粗暴 或:v ...

  9. Ubuntu18.04上安装N卡驱动、CUDA、CUDNN三连

    环境:Ubuntu18.04 显卡驱动真的挺方便的,CUDA和CUDNN还是踩了一些坑2333 1.安装显卡驱动 安装ubuntu更新或sudo apt-get update & sudo a ...

  10. gensim word2vec实践

    语料下载地址 # -*- coding: utf-8 -*- import jieba import jieba.analyse # suggest_freq调节单个词语的词频,使其能(或不能)被分出 ...