/*
* 生成指定范围的随机整数
* @param lower 下限
* @param upper 上限
* @return 返回指定范围的随机整数,上/下限值均可取
*/
function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower)) + lower;
} /*
* 生成rgb随机颜色值
* @return 返回生成的rgb字符串:"rgb(33,44,55)"
*/
function randomColor() {
// 随机生成 rgb 十进制值
var r = random(0, 255),
g = random(0, 255),
b = random(0, 255);
// 串联字符串,并返回
return "rgb(" + r + "," + g + "," + b + ")";
}
/*
* 将 URL 中查询字符串转换为对象
* @param ul 待转换的URL字符串
*/
function parseQueryString(url) {
// 获取 ? 与 # 的索引
var start = url.indexOf("?"),
end = url.indexOf("#"); // 判断是否有 ?
if (start === -1)
// 不存在,则返回 null
return null;
// 存在 ?,则起始索引从?后一位置开始
start += 1; // 判断是否有 #
if (end === -1)
// 不存在,则截取到字符串末尾
end = url.length; // 获取查询字符串
var queryString = url.slice(start, end); // 使用 & 符号将查询字符串分割
queryString = queryString.split("&");
var result = {}; // 保存解析后的对象
// 遍历迭代数组中每个元素
for (var i = 0, len = queryString.length; i < len; i++) {
// 将当前数组中遍历到的 "key=value" 以 = 分割
var parts = queryString[i].split("=");
result[parts.shift()] = parts.shift();
}
// 将解析报的对象返回
return result;
}
/*
* 将对象转换为查询字符串
* @param obj 对象
* @return 查询字符串 key=value&key=value&key=value
*/
function toQueryString(obj) {
// 定义变量保存转换结果
var result = [];
// 遍历迭代对象各属性
for (var attr in obj) {
result.push(attr + "=" + obj[attr]);
}
// 返回连接后的查询字符串
return result.join("&");
}
/*
* 格式化日期时间:yyyy-MM-dd HH:mm:ss
* @param datetime 待格式化日期时间对象
* @return 格式化后的字符串:yyyy-MM-dd HH:mm:ss
*/
function format(datetime) {
var year = datetime.getFullYear(),
month = ("0" + (datetime.getMonth() + 1)).slice(-2),
date = ("0" + datetime.getDate()).slice(-2),
hour = ("0" + datetime.getHours()).slice(-2),
min = ("0" + datetime.getMinutes()).slice(-2),
sec = ("0" + datetime.getSeconds()).slice(-2);
return year + "-" + month + "-" + date + " " + hour + ":" + min + ":" + sec;
}

更多内容请见原文,文章转载自:https://blog.csdn.net/weixin_44519496/article/details/118599400

自己封装的tools.js文件的更多相关文章

  1. 小程序请求接口统一封装到一个js文件中

    在我们做小程序时,数据请求数据请求是避免不了的,然而我们用官方自带的请求方式,会给我们带来很多重复的工作,所以我就借鉴大神们的博客,写了一个简单的请求方式. 1.首先我们在utils中新建一个api. ...

  2. js封装,一个JS文件引用多个JS文件

    (function() { //加载   varobj =  {};   /**    * 动态加载脚本函数    * @param url 要加载的脚本路径    * @param callback ...

  3. JS高级---案例贪吃蛇,把封装的函数移动到js文件中

    案例贪吃蛇,把封装的函数移动到js文件中 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  4. Node.js 文件上传 cli tools

    Node.js 文件上传 cli tools byte stream 断点续传 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  5. vue cli3.0 封装组件全局引入js文件并发布到npm

    首先用 vue create创建一个项目 当前的项目目录是这样的: 首先需要创建一个 packages 目录,用来存放组件 然后将 src 目录改为 examples 用作示例 二.修改配置 启动项目 ...

  6. vue-cli3 将自己写的组件封装成可引入的js文件

    一.调整项目结构 首先用 vue-cli 创建一个 default 项目 // 顺便安利一篇文章<Vue 爬坑之路(十二)—— vue-cli 3.x 搭建项目> 当前的项目目录是这样的: ...

  7. JS组件系列——封装自己的JS组件,你也可以

    前言:之前分享了那么多bootstrap组件的使用经验,这篇博主打算研究下JS组件的扩展和封装,我们来感受下JQuery为我们提供$.Extend的神奇,看看我们怎么自定义自己的组件,比如我们想扩展一 ...

  8. JS组件系列——封装自己的JS组件

    前言:之前分享了那么多bootstrap组件的使用经验,这篇博主打算研究下JS组件的扩展和封装,我们来感受下JQuery为我们提供$.Extend的神奇,看看我们怎么自定义自己的组件,比如我们想扩展一 ...

  9. html或者jsp页面引用jar包中的js文件

    一,页面上引用jar包中的js文件的方法 使用java web框架AppFuse的时候发现,jquery.bootstrap等js框架都封装到jar包里面了.这些js文件通过一个wro4j的工具对其进 ...

随机推荐

  1. 帝国CMS实现栏目批量修改:是否生成

    帝国cms实现栏目批量修改 是否生成:不生成栏目页, 不生成内容页, 不生成JS调用, 标签不调用的修改方本文关键字词:栏目批量设置第一步./e/admin/SetMoreClass.php中查找: ...

  2. go源码阅读 - sync/rwmutex

    相比于Mutex来说,RWMutex锁的粒度更细,使用RWMutex可以并发读,但是不能并发读写,或者写写. 1. sync.RWMutex的结构 type RWMutex struct { // 互 ...

  3. gin框架使用【2.RESTFUL API使用】

    package mainimport ( "github.com/gin-gonic/gin")func main() { router := gin.Default() rout ...

  4. js字符串常用的方法总结,及其用法

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  5. 20202127 实验二《Python程序设计》实验报告

    20202127 2021-2022-2 <Python程序设计>实验二报告 课程:<Python程序设计>班级: 2021姓名: 马艺洲学号:20202127实验教师:王志强 ...

  6. 在django中使用orm来操作MySQL数据库的建表,增删改

    多张表之间的三种关系:一对一,一对多,多对多 创建表 一对一 xx = models.OneToOneField(to='表明',to_field='字段名',on_delete=models.CAS ...

  7. 技术分享 | WEB 端常见 Bug 解析

    对于 WEB 产品来说,有一些常见的 Bug,本章节挑选一些比较典型的 Bug 进行举例介绍. UI Bug 页面展示的时候,需要根据长度的边界值去设计用例进行验证.   一般来说都会有超长内容的验证 ...

  8. C/C++游戏项目:中国程序员一定要会的中国象棋教程

    中国象棋是中国一种流传十分广泛的游戏. 下棋双方根据自己对棋局形式的理解和对棋艺规律的掌握,调动车马,组织兵力,协调作战在棋盘这块特定的战场上进行着象征性的军事战斗. 象棋,亦作"象碁&qu ...

  9. Java SE 01

    强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后使用 Java的数据类型分为两大类 基本类型(promitive type) 数值类型 ① 整数类型 byte 占1个字节范围:-128 ...

  10. shell脚本实现MySQL全量备份+异地备份

    一.知识储备工作: Mysql导出数据库语法: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql shell脚本for循环及if条件判断基本语法 gzip压缩文件用法 r ...