JavaScript常用方法(工具类的封装)
日期格式化
function formatDateTime(timeStamp) {
var date = new Date();
date.setTime(timeStamp);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
// return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
return y + '-' + m + '-' + d;
}
formatDateTime("1592659874256")
距离格式化
convertDistanceStr = function (distance) {
if (!distance) {
return "";
} else if (distance < 1000) {
return distance + "m"
} else if (distance >= 1000 && distance < 100000) {
return (distance / 1000.0).toFixed(1) + "km"
} else if (distance > 100000) {
return (distance / 1000.0).toFixed(0) + "km"
} else {
return "";
}
};
格式验证
checkStr (str, type) {
switch (type) {
case 'phone': //手机号码
return /^1[3|4|5|7|8][0-9]{9}$/.test(str);
case 'tel': //座机
return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);
case 'card': //身份证
return /^\d{15}|\d{18}$/.test(str);
case 'pwd': //密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
return /^[a-zA-Z]\w{5,17}$/.test(str)
case 'postal': //邮政编码
return /[1-9]\d{5}(?!\d)/.test(str);
case 'QQ': //QQ号
return /^[1-9][0-9]{4,9}$/.test(str);
case 'email': //邮箱
return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);
case 'money': //金额(小数点2位)
return /^\d*(?:\.\d{0,2})?$/.test(str);
case 'URL': //网址
return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
case 'IP': //IP
return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str);
case 'date': //日期时间
return /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str) || /^(\d{4})\-(\d{2})\-(\d{2})$/.test(str)
case 'number': //数字
return /^[0-9]$/.test(str);
case 'english': //英文
return /^[a-zA-Z]+$/.test(str);
case 'chinese': //中文
return /^[\u4E00-\u9FA5]+$/.test(str);
case 'lower': //小写
return /^[a-z]+$/.test(str);
case 'upper': //大写
return /^[A-Z]+$/.test(str);
case 'HTML': //HTML标记
return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str);
default:
return true;
}
}
读取url参数
getUrlParam = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURIComponent(r[2]);
}
return "";
};
读取全部url参数
getUrlParams = function (url) {
var params = {};
var search = url.search;
if (search) {
while (search.indexOf("?") == 0) {
search = search.substr(1);
}
var arr = search.split("&");
for (var i = 0; i < arr.length; i++) {
var kv = arr[i].split("=");
if (kv.length >= 2) {
params[kv[0]] = decodeURIComponent(kv[1]);
}
}
}
return params;
};
初始化评分星星
<span class="score-stars" data-value=""></span>
initScoreStars = function () {
$(".score-stars").each(function (index, item) {
var value = parseFloat($(item).attr("data-value"));
var stars = "";
for (var i = 0; i < 5; i++) {
if (value - i >= 0.9) {
stars += "<i class='iconfont icon-star'></i>";
} else if (value - i >= 0.1) {
stars += "<i class='iconfont icon-starhalf'></i>";
} else {
stars += "<i class='iconfont icon-star muted'></i>";
}
}
$(item).html(stars);
});
};
判断是否是pc端
isPC () { //是否为PC端
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
判断是否为微信端
isWXBrowser = function () {
return navigator.userAgent.toLowerCase().indexOf("micromessenger") >= 0;
}
微信支付签名时间戳,签名随机串
var timestamp = Math.round(new Date().getTime() / 1000).toString();//时间戳
var nonceStr = Math.round(Math.random() * 100000000).toString();随机串
http请求
app.getJSON = function (url, data, successFunc, errorFunc) {
app.request("get", url, data, successFunc, errorFunc);
}
app.delete = function (url, data, successFunc, errorFunc) {
app.request("delete", url, data, successFunc, errorFunc);
}
// 提交数据
app.post = function (url, data, successFunc, errorFunc) {
app.request("post", url, data, successFunc, errorFunc);
}
app.put = function (url, data, successFunc, errorFunc) {
app.request("put", url, data, successFunc, errorFunc);
}
app.request = function (method, url, data, successFunc, errorFunc) {
if (method.toLowerCase() == "post" || method.toLowerCase() == "put") {
if (data && typeof data != "string") {
data = JSON.stringify(data);
} else if (!data) {
data = "";
}
}
$.ajax({
type: method,
dataType: "json",
url: url,
data: data,
contentType: "application/json",
beforeSend: function (request) {
request.setRequestHeader("appKey", conf.appKey);
},
success: function (res) {
if (res.status == "9901") {
var baseUrl;
if(window.location.href.toString().indexOf("/new/")>0){
baseUrl=conf.newWebBaseUrl;
}
else if(window.location.href.toString().indexOf("/newStore/")>0){
baseUrl=conf.newStoreBaseUrl;
}
else {
baseUrl=conf.webBaseUrl;
}
} else if (typeof successFunc == "function") {
successFunc(res);
}
},
error: function () {
if (typeof errorFunc == "function") {
errorFunc();
}
}
});
}
用法
app.getJSON(conf.apiBaseUrl + "/users/updAutoRebateMerchant", {
merchantId:merchantId
}, function (res) {
if (res.status == "0000") {
//成功
} else if (res.message) {
mui.alert(res.message);
}
});
JavaScript常用方法(工具类的封装)的更多相关文章
- iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理
一.旋转动画的实现 二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现 头文件 .m文件 #import "ChaosMu ...
- JavaScript时间工具类
/** * JavaScript日期工具类 * @author ZhangLp */ /** * 获取当前月的第一天 */ function getCurrentMonthFirst(){ var d ...
- javascript常用工具类整理(copy)
JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...
- vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js
vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...
- swift项目第十天:网络请求工具类的封装
import UIKit /* 必须先导入头文件:import AFNetworking */ import AFNetworking //MARK:-0:定义枚举:以枚举定义请求网络的get和pos ...
- jwt工具类的封装
第一步先引入jar: <dependency> <groupId>com.nimbusds</groupId> <artifactId>nimbus-j ...
- JDBC工具类—如何封装JDBC
“获得数据库连接”操作,将在以后的增删改查所有功能中都存在,可以封装工具类JDBCUtils.提供获取连接对象的方法,从而达到代码的重复利用. 该工具类提供方法:public static Conne ...
- jdbc工具类的封装,以及表单验证数据提交后台
在之前已经写过了jdbc的工具类,不过最近学习了新的方法,所以在这里重新写一遍,为后面的javaEE做铺垫: 首先我们要了解javaEE项目中,文件构成,新建一个javaEE项目,在项目中,有一个we ...
- DAO工具类的封装源码
详细源码见下表,绝对原创,转载请注明出处! package com.ydj.util; import java.sql.Connection; import java.sql.PreparedStat ...
随机推荐
- C语言复习20170805
循环控制结构 重复处理次数时已知的循环称为计数控制的循环,若重复处理次数为未知,是由给定情况控制的,称为条件控制的循环. C语言提供for.while.do while三种循环语句实现循环结构. 循环 ...
- 封印解除:如何在Win10家庭版中启用组策略
@echo off pushd "%~dp0" *.mum >List.txt *.mum >>List.txt for /f %%i in ('findstr ...
- QT-2D编程
QT-[转]2D编程 Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕上和绘图·设备上进行绘制,主要基于QPainter.QPainterDevice和QPainterEngine这3个类. ...
- 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译
SeetaFaceEngine是开源的C++人脸识别引擎,无需第三方库,它是由中科院计算所山世光老师团队研发.它的License是BSD-2. SeetaFaceEngine库包括三个模块:人脸检测( ...
- Sublime Text 3安装完美的Vim支持,ActualVim/NeoVim
很多IDE和编辑器都有Vim插件用于支持Vim模式,但大多数都有些问题,拿我一直用的Idea来说,它的vim在ctrl+v后,选择多行的行前插入,如果这几行中有空行,它不会把空格算在内,所以最终是会少 ...
- KEIL5的安装
安装注意事项 1.最好不要安装在带有中文路径的文件夹. 2.试用版的Keil MDK只能编译32K以下的代码,代码大于32K只能使用正版或破解版才能编译通过. 安装MKD 这里选择MKD512A版本安 ...
- Qt-QML-Canvas-雷达扫描仪表简单
使用QML实现的雷达仪表的实现,主要实现了余晖扫描的实现,其他的还是比较简单的,后面可能会加入目标标识,目前的功能仅仅是一个假的扫描雷达 来看代码 /* 作者:张建伟 时间:2018年4月27日 简述 ...
- NO.08--VUE之自定义组件添加原生事件
前几篇给大家分享了我的业余的“薅羊毛”的经历,回归正题,讲回vue吧: 许多vue新手在工作开发中会遇到一个问题,直接使用 button 添加原生事件是没有问题的,但是使用自定义组件添加原生事件时,就 ...
- 设置PNG图片DPI 信息,保存为PDF(使用Magick),与OpenCV转换
目录 任务描述 解决方案 Magick++ Talk is cheap, show me the code. 与 Opencv 配合 相关链接 任务描述 我有这样一个需求,读取一张格式为PNG 或者 ...
- echarts.js使用心得--demo
首先要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术. 废话不多时 , 直接开始. 第一步: 导入echarts.js文件 下载地址:http://e ...