格式化时间:
//date format “2014-04-09 09:55:07.020”
function d2(n) {
if(n<9) return "0"+n;
return n;
}
function d3(n){
if(n<9) return "00"+n;
if(n>9&&n<100) return "0"+n;
return n;
}
today = new Date();
var reqTime = today.getFullYear() + "-" + d2(parseInt(today.getMonth()+1)) + "-" + d2(today.getDate()) + " " + d2(today.getHours()) + ":" + d2(today.getMinutes()) + ":" + d2(today.getSeconds()) + "." + d3(today.getMilliseconds());
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
//调用:
//var time1 = new Date().Format("yyyy-MM-dd");
//var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
json按key排序(升序排序)
//json按key排序
objKeySort=(obj)=> {
var newkey = Object.keys(obj).sort();
var newObj = {}; //创建一个新的对象,用于存放排好序的键值对
for(var i = 0; i < newkey.length; i++) {
newObj[newkey[i]] = obj[newkey[i]];
//向新创建的对象中按照排好的顺序依次增加键值对
}
return newObj; //返回排好序的新对象
};
将排序好的参数进行拼接(使用&)
//json -> url params
toQueryString=(obj)=> {
var ret = [];
for(var key in obj){
key = encodeURIComponent(key);
var values = obj[key];
if(values && values.constructor == Array){//数组
var queryValues = [];
for (var i = 0, len = values.length; i < len; i++) {
var value = values[i];
queryValues.push(toQueryPair(key, value));
}
ret = ret.concat(queryValues);
}else{ //字符串
ret.push(toQueryPair(key, values));
}
}
return ret.join('&');
};
//toQueryPair
toQueryPair=(key, value)=> {
//在js中数组里可以存放undefined
if (typeof value == 'undefined'){
return key;
}
return key + '=' + (value === null ? '' : String(value));
};
从request中获取传递的参数(GET和POST)
if(pm.request.method=="GET")
var req = pm.request.url.query.all();
if(pm.request.method=="POST")
var req =pm.request.body.urlencoded.members;
将从request中获取的参数转换为json形式
//url params(Array["key":key, "value":value]) -> json
//特例:只保留含有全局变量的param!!!!
urlToObj=(params)=>{
let obj = {};
params.forEach((param)=>{
//转换环境变量/全局变量{{v}} - > {{$v}}
reg = new RegExp("{{([a-zA-Z0-9_$]+)}}","g");
if(param.value.match(reg)){
while( vs = reg.exec(param.value) )
param.value = param.value.replace(vs[0], pm.variables.get(vs[1]));
//构建键值对
Object.assign(obj, {[param.key] : param.value});
}
});
return obj;
};
在进行加密之前,一定要看是否加密的字符串中是否需要sign字段,不需要一定要删除
//一定要删除sign
delete req["sign"];
获取的参数名称(key)转小写(需要先将获取到的参数转换为json形式)
//参数名称(key)转小写
Object.keys(req).forEach((key)=>{
req[key.toLowerCase()] = req[key];
if(key.toLowerCase() != key) delete req[key];
});
给从request中获取到的参数名称(key)加编号(需要先将获取到的参数转换为json形式)
var num = 0;
Object.keys(req).forEach((key)=>{
req[num+key] = req[key];
delete req[key];
num++;
});
提取URL中的参数
//提取url参数
city = request.url.split("city=")[1].split("&")[0];
type = request.url.split("type=")[1].split("&")[0];
date = request.url.split("date=")[1].split("&")[0];