常用的JavaScript工具函数
程序员文章站
2022-03-09 19:11:14
...
1.反转数字
const reverseNumber = n =>
parseFloat(`${n}`.split('').reverse().join('')) * Math.sign(n);
reverseNumber(123); // 321
reverseNumber(-200); // -2
reverseNumber(32.4); // 4.23
reverseNumber(-32.4); // -4.23
2.判断当前运行环境是否为浏览器
const isBrowser = () => ![typeof window, typeof document].includes('undefined');
isBrowser(); // false (Node)
isBrowser(); // true (browser)
3.获取URL上的参数
const getURLParams = url =>
(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
(a, v) => (
(a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a
),
{}
);
getURLParams('qq.com'); // {}
getURLParams('https://xx.com?name=tntweb&age=20');
// {name: 'tntweb', age: '20'}
4.rgb(x,x,x)转换成对象格式
const toRGBObject = rgbStr => {
const [red, green, blue] = rgbStr.match(/\d+/g).map(Number);
return { red, green, blue };
};
toRGBObject('rgb(100, 150, 200)'); // {red: 100, green: 150, blue: 200}
5.生成指定范围内的随机数据
const randomIntegerInRange = (min, max) =>
Math.floor(Math.random() * (max - min + 1)) + min;
randomIntegerInRange(1, 5); // 1- 5
6.获取不带参数的URL
const getBaseURL = url => url.replace(/[?#].*$/, '');
getBaseURL('https://xx.com/index?name=boke&company=tencent');
// https://xx.com/index
7.将~符号转换为绝对路径
const reversePath = str =>
str.replace(/^~($|\/|\\)/, `${require('os').homedir()}$1`);
reversePath('~/web'); // '/Users/[userName]/web'在这里插入代码片
8.使用Unescapes,转义HTML字符
const unescapeHTML = str =>
str.replace(
/&|<|>|'|"/g,
tag =>
({
'&': '&',
'<': '<',
'>': '>',
''': "'",
'"': '"'
}[tag] || tag)
);
unescapeHTML('<a href="#">boke</a>');
9.HTML字符转成转义字符
const escapeHTML = str =>
str.replace(
/[&<>'"]/g,
tag =>
({
'&': '&',
'<': '<',
'>': '>',
"'": ''',
'"': '"'
}[tag] || tag)
);
escapeHTML('<a href="#">boke</a>');
推荐阅读
-
深入理解JavaScript系列(4) 立即调用的函数表达式_javascript技巧
-
javascript中bind函数的作用实例介绍_javascript技巧
-
JS中setInterval、setTimeout不能传递带参数的函数的解决方案_javascript技巧
-
可实现多表单提交的javascript函数_表单特效
-
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试_javascript技巧
-
javascript数组(array)的常用方法(shift/unshift/pop/push/concat/splice/reverse/sort/slice/join)
-
关于10个优化代码的CSS和JavaScript工具的详细介绍
-
javascript中关于array的常用方法
-
深入认识javascript中的eval函数_javascript技巧
-
JavaScript下的时间格式处理函数Date.prototype.format_javascript技巧