获取url指定参数
const getquerys = {
oa_open_id: "",
payload: "",
}
function getquery(queryName) {
var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
} else {
return null;
}
}
getquerys.oa_open_id = getquery("oa_open_id");
getquerys.payload = getquery("payload");
export default getquerys;
删除url指定参数
//removeURLParameter(地址,'参数名前缀')
removeURLParameter(url, parameter) {
var urlparts = url.split("?");
if (urlparts.length >= 2) {
//参数名前缀
var prefix = encodeURIComponent(parameter) + "=";
var pars = urlparts[1].split(/[&;]/g);
//循环查找匹配参数
for (var i = pars.length; i-- > 0; ) {
if (pars[i].lastIndexOf(prefix, 0) !== -1) {
//存在则删除
pars.splice(i, 1);
}
}
return (
urlparts[0] + (pars.length > 0 ? "?" + pars.join("&") : "")
);
}
return url;
},
清除对象中值为空的属性
//这个方法不会影响原来的对象,而是返回一个新对象
function filterParams(obj) {
var _newPar = {};
for (var key in obj) {
if ((obj[key] === 0 ||obj[key] === false|| obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
_newPar[key] = obj[key];
}
}
return _newPar;
}
filterParams({a:"",b:null,c:"010",d:123}) //{c: "010", d: 123}
根据数组中对象的某个属性值进行去重
var arr = [
{
from: '张三',
to: '河南'
},
{
from: '王二',
to: '阿里'
},
{
from: '王二',
to: '杭州'
},
{
from: '王二',
to: '山东'
},
]
const res = new Map();
arr = arr.filter((a) => !res.has(a.from) && res.set(a.from, 1))
console.log(arr);
url操作
getquery(queryName) {
var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
} else {
return null;
}
},
数组去重
function unique(arr) {
return Array.from(new Set(arr))
}
正则验证
//手机
const phone = ((data) => {
var myreg = /^1[3456789]\d{9}$/
if (myreg.test(data)) {
return true
} else {
return false
}
})
//邮箱
/^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
//校验身份证号码
//15位:
^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$
//18位:
^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$
//校验日期(“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
随机获取布尔值(true/false)
const randomBoolean = () => Math.random() >= 0.5;
console.log(randomBoolean());
// Result: a 50/50 change on returning true of false
判断给的日期是否为工作日
const isWeekday = (date) => date.getDay() % 6 !== 0;
console.log(isWeekday(new Date(2021, 0, 11)));
// Result: true (Monday)
console.log(isWeekday(new Date(2021, 0, 10)));
// Result: false (Sunday)
反转字符串
const reverse = str => str.split('').reverse().join('');
reverse('hello world');
// Result: 'dlrow olleh'
判断当前选项卡是否在视图/焦点中
const isBrowserTabInView = () => document.hidden;
isBrowserTabInView();
// Result: returns true or false depending on if tab is in view / focus
判断数字是偶数还是奇数
const isEven = num => num % 2 === 0;
console.log(isEven(2));
// Result: true
console.log(isEven(3));
// Result: false
从日期获取时间
const timeFromDate = date => date.toTimeString().slice(0, 8);
console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0)));
// Result: "17:30:00"
console.log(timeFromDate(new Date()));
// Result: will log the current time
将数字四舍五入到固定的小数点
const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
// Examples
toFixed(25.198726354, 1); // 25.1
toFixed(25.198726354, 2); // 25.19
toFixed(25.198726354, 3); // 25.198
toFixed(25.198726354, 4); // 25.1987
toFixed(25.198726354, 5); // 25.19872
toFixed(25.198726354, 6); // 25.198726
检查元素当前是否处于焦点
const elementIsInFocus = (el) => (el === document.activeElement);
elementIsInFocus(anyElement)
// Result: will return true if in focus, false if not in focus
滚动到页面顶部
const goToTop = () => window.scrollTo(0, 0);
goToTop();
// Result: will scroll the browser to the top of the page
获取参数的平均值
const average = (...args) => args.reduce((a, b) => a + b) / args.length;
average(1, 2, 3, 4);
// Result: 2.5
网友评论