js常用的函数库
阻止冒泡、默认行为、事件捕获
/* funname preventEventPropagation
* desc 阻止冒泡事件&阻止默认行为&阻止事件捕获
* params {name: string}参数名称
* return {string or null}
*/
var preventEventPropagation = function(evt) {
var e = evt || window.event;
if (e) {
e.preventDefault();
e.stopPropagation();
}
return false;
};
获取地址参数
/* funname getQueryString
* desc 获取地址参数
* params {name: string}参数名称
* return {string or null}
*/
var getQueryString = function(name) {
var r, reg;
reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
r = window.location.search.substr(1).match(reg);
if (r !== null) {
return r[2]; //不解码
}
return null;
};
判断微信环境
/*
*desc:判断微信环境
*params:null
*/
var isInWechat = function() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
};
获取环境参数
/*
*funname:platformFn
*des:获取环境参数
*params:
*return: [object]
*/
var platformFn = function() {
var u = navigator.userAgent,
app = navigator.appVersion;
return {
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
};
};
判断是否为数组
// 判断是否为数组
/*
*funname:isArray
*des:判断是否为数组
*params: [array] arr
*return: [bolean]
*/
function isArray(arr) {
if (arr typeof arr === 'object' && arr.constructor == Array) {
return true;
}
return false;
}
数组除重
// 数组除重
/*
*funname:arrayUnique
*des:数组去重
*params: [array] arr
*return: [array]
*/
var arrayUnique = function(arr) {
var newArr = [];
var temp = {};
var len = arr.length;
for (var index = 0; index < len; index++) {
var key = typeof(arr[index]) + arr[index];
if (temp[key] !== 1) {
newArr.push(arr[index]);
temp[key] = 1;
}
}
return newArr;
};
获取cookie
/*
*funname:getCookie
*des:获取cookie
*params: [array] arr
*return: [array]
*/
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=")
if (c_start != -1) {
c_start = c_start + c_name.length + 1
c_end = document.cookie.indexOf(";", c_start)
if (c_end == -1) c_end = document.cookie.length
return unescape(document.cookie.substring(c_start, c_end))
}
}
return ""
}
设置cookie
/*
*funname:setCookie
*des:设置cookie
*params: [string] c_name,[string] value,expiredays
*return: [array]
*/
function setCookie(c_name, value, expiredays) {
var exdate = new Date()
exdate.setDate(exdate.getDate() + expiredays)
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
}
检测cookie
/*
*funname:checkCookie
*des:检测cookie
*params:
*return:
*/
function checkCookie() {
username = getCookie('username')
if (username != null && username != "") {
return true;
} else {
return false;
}
}
获取localstorage
/*
*funname:getLocalStorage
*des:获取localstorage
*params: [string] key
*return: [string]
*/
function getLocalStorage(key) {
if (localStorage) {
return localStorage.getItem(key);
} else {
// 使用cookie获取
return getCookie(key);
}
return '';
}
设置localstorage
/*
*funname:setLocalStorage
*des:设置localstorage
*params:
*return: null
*/
function setLocalStorage(key, value, expiredays) {
if (localStorage) {
console.log(setLocalStorage);
localStorage.setItem(key, value);
} else {
// 使用cookie保存
setCookie(key, value, expiredays);
}
}
清空localstorage
/*
*funname:clearLocalStorage
*des:清空localstorage
*params: [string] key
*return: [string]
*/
function clearLocalStorage(key) {
if (localStorage) {
localStorage.removeItem(key);
} else {
// 使用cookie获取
clearCookie(key)
}
}
解决ios滚动问题的插件
/**
* ScrollFix v0.1
* http://www.joelambert.co.uk
*
* Copyright 2011, Joe Lambert.
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* des: 解决ios滚动问题的插件
*/
var ScrollFix = function(elem) {
// Variables to track inputs
var startY, startTopScroll;
elem = elem || document.querySelector(elem);
// If there is no element, then do nothing
if (!elem)
return;
// Handle the start of interactions
elem.addEventListener('touchstart', function(event) {
startY = event.touches[0].pageY;
startTopScroll = elem.scrollTop;
if (startTopScroll <= 0)
elem.scrollTop = 1;
if (startTopScroll + elem.offsetHeight >= elem.scrollHeight)
elem.scrollTop = elem.scrollHeight - elem.offsetHeight - 1;
}, false);
};
动态加载js
/*
*funname:loadScript
*des:动态加载js
*params: [string] filepath,[function] onloadCallback
*return: null
*/
function loadScript(filepath, onloadCallback) {
var scriptDom = document.createElement("script");
scriptDom.onload = scriptDom.onreadystatechange = onloadCallback;
scriptDom.type = "text/javascript";
scriptDom.src = filepath;
document.body.appendChild(scriptDom);
}
克隆对象
/*
*desc:针对纯 JSON 数据对象的深拷贝
*params:[object] obj
*/
var cloneObj = function(obj) {
if (obj) {
var newObj = JSON.stringify(obj)
newObj = JSON.parse(newObj)
return newObj
}
return null
};
局限性:
- 无法复制函数
- 原型链没了,对象就是object,所属的类没了。
移动端返回上一页
/*
*desc:移动端返回上一页
*params:
*/
var appGoBack = function() {
if (!url || url == '') {
window.history.go(-1);
setTimeout(function() {
// 如果不支持history.go,返回首页
location.replace('/');
}, 300);
} else {
// ios的.history.go和history.back有bug
location.replace(url);
}
return false;
}
获取随机数
/*
* funname:GetRandomNum
*params:[number]
* des:获取随机数
*return:
*/
var getRandom = function(Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
return (Min + Math.round(Rand * Range));
};
11位手机号码验证
function checkPhone(phone ){
if(/^1(3|4|5|7|8)\d{9}$/.test(phone)){
return true;
}
return false;
}
判断是否是汉字
function isChinese(str){
var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
return reg.test(str);
}
//u4e00-u9fbf: unicode CJK(中日韩)统一表意字符。u9fa5后至u9fbf为空
//uF900-uFAFF: unicode CJK 兼容象形文字 。uFA2D后至uFAFF为空
不定期更新,看心情更新~
本文转载于:猿2048js常用的函数库
js常用的函数库的更多相关文章
- JS常用自定义函数总结
JS常用自定义函数总结 1.原生JavaScript实现字符串长度截取 2.原生JavaScript获取域名主机 3.原生JavaScript清除空格 4.原生JavaScript替换全部 5.原 ...
- JavaScript使用技巧(1)——JS常用的函数
1.字符串对象函数和属性 函数: charAt():返回在指定位置的字符. charCodeAt():返回在指定的位置的字符的 Unicode 编码. concat():连接字符串. indexOf( ...
- js常用字符串函数
// JS字符串 //1.replace字符串替换,只能换第一部分,就是说多个字符相同,只能换下最先的 var str='helloworld!'; alert(str.replace('llo',' ...
- Js常用的函数
1.用于对正则表达式的函数: var pattern=/\d{3}-\d{2}-\d{4}/;//这里产生的是一个object类型 alert(pattern.test("cscscscs& ...
- JS常用工具函数(持续记录)
1.设置获取cookie //方式1 //设置cookie function SetCookie(name, value)//两个参数,一个是cookie的名字,一个是值 { var Days = 3 ...
- 前端开发 —— js 常用工具函数(utilities)
1. 时间 function getCurTime() { var date = new Date(); return date.toLocaleTimeString(); } date.toLoca ...
- JS常用工具函数
/** * Created by gaojun-pd on 2016/10/27. */ var Util = { /** * 1.判断非空 * 2.获取字符串真实长度 汉字算两位 * 3.判断参数类 ...
- JS - 常用效果代码库 (四)
1.首字母大写示例: var value = “一段文本或一个参数”; value = value.toString() return value.charAt(0).toUpperCase() + ...
- js常用Matn函数的操练
Math.PI console.log(Math.PI); 随机数以及向下取整 这是一个能实现从a-b之间随机打印一个整数 function rand_s(a, b) { var x = a + (b ...
随机推荐
- Qt:QThread
0.说明 QThread提供了一种与平台无关的线程管理方法. 一个QThread对象管理一个线程.QThread通过run()方法启动线程.默认情况下,run()方法通过exec()启动一个事件循环, ...
- IntelliJ:JUnit单元测试
0.参考 在Intellij IDEA中添加JUnit单元测试 - 唐啊唐囧囧 - 博客园 1.引言 JUnit是Java中很出名的一个单元测试,关于JUnit的具体介绍,可以看之前写的编写JUnit ...
- Python 内存管理与垃圾回收
Python 内存管理与垃圾回收 参考文献:https://pythonav.com/wiki/detail/6/88/ 引用计数器为主标记清除和分代回收为辅 + 缓存机制 1.1 大管家refcha ...
- 使用 Istio CNI 支持强安全 TKE Stack 集群的服务网格流量捕获
作者 陈计节,企业应用云原生架构师,在腾讯企业 IT 负责云原生应用治理产品的设计与研发工作,主要研究利用容器集群和服务网格等云原生实践模式降低微服务开发与治理门槛并提升运营效率. 摘要 给需要快速解 ...
- mysql中MyISAM与InooDB存储引擎的区别
MyISAM存储引擎特点 不支持事务 表级锁定 读写相互阻塞,写入不能读,读时不能写 只缓存索引 不支持外键约束 不支持聚簇索引 读取数据较快,占用资源较少 不支持MVCC(多版本并发控制机制)高并发 ...
- 想让DBA瞬间崩溃,那就让他去做SQL性能优化
摘要:很多大数据计算都是用 SQL 实现的,跑得慢时就要去优化 SQL,但常常碰到让人干瞪眼的情况. 本文分享自华为云社区<做 SQL 性能优化真是让人干瞪眼>,作者: 石臻臻的杂货铺 . ...
- 使用dom4j处理xml文件
1.项目中加入dom4j的jar 2.基本的读取xml文件为Document对象:将Document对象写入到指定文件中 package com.ricoh.rapp.deploymenttool.u ...
- 【网鼎杯2020白虎组】Web WriteUp [picdown]
picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...
- count(*)这么慢,我该怎么办?
1)计算一个表有多少行数用什么命令? select count(*) from t 2)count(*)底层是怎样实现的? 在MYISAM中,是把这个总行数存到磁盘中去的,要的时候直接去读就行,特别快 ...
- 什么是 Git
概述 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. ...