Collect some common utility functions for use in work. If you also have some common code, welcome to submit
pr
for this project.
Front-end tool function code snippets with full typescript
support. If you are using TS
too, you can use these in Vue
, Svelte
, React
files, try it!
https://utils-snap-fn.netlify.app
# npm
npm i utils-snap-fn -D
# yarn
yarn add utils-snap-fn -D
# pnpm
pnpm add utils-snap-fn -D
import { isPhoneNum } from 'utils-snap-fn'
import * as snapFn from 'utils-snap-fn'
// example
snapFn.isPhoneNum('18811112222') // true
snapFn.isPhoneNum('28811112222') // false
You can download the utils-snap-fn.browser.js
file from the lib
directory and use it directly.
It also supports CDN, so you can include it in your HTML file through the CDN link
// <script src="./js/utils-snap-fn.browser.js"></script>
isPhoneNum('13344445555') // true
You can download the utils-snap-fn.cjs.js
file from the lib
directory and use it directly.
It is designed to be used in a Node.js environment, so you can import it in your Node.js code
The examples below assume the use of import on demand
isPhoneNum('13344445555') // true
isPhoneNum('28811112222') // false
isSafari() // true or false
isMobile() // true or false
isEmail('[email protected]') // true
isEmail('[email protected]') // false
isIdCard('13068219990814293X') // true
isIdCard('187329473298') // false
isIpv4('192.168.1.1') // true
isIpv4('19.256.3.2') // false
isIpv6('2001:0db8::1:0:0:1') // true
isIpv6('2001:0db8:85a3::8a2e:03707334') // false
// use the `generateUUID` function
isValidUUID(generateUUID()) // true
isArrayEqual([1, 2, 3], [1, 2, 3]) // true
isArrayEqual([1, 2, 3], [1, 2, 3, 4]) // false
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'John' },
{ id: 4, name: 'Bob' },
{ id: 5, name: 'Jane' },
]
const actual = removeDuplicatesObj(arr, 'name')
/*
output:
[
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 4, name: 'Bob' },
]
*/
generateUUID() // random UUID
randomNum(11, 800) // random number
randomColor('hex') // random hex color, example: #f31a34
randomColor('rgb', 0.5) // random rgba color, example: rgba(31, 55, 78, 0.5)
randomColor('rgb') // random rgba color, example: rgba(31, 55, 78, 1)
capitalsFirstLetter('hello') // Hello
uppercaseEveryWord('hello world') // Hello World
uppercaseEveryLetters('thank you javascript') // THANK YOU JAVASCRIPT
lowercaseEveryLetters('THANK YOU VUE') // thank you vue
lowercaseEveryLetters('THANK YOU JAVASCRIPT', 'en') // thank you javascript
const tree = {
id: 1,
name: 'Parent',
children: [
{
id: 2,
name: 'Child 1',
children: [],
},
{
id: 3,
name: 'Child 2',
children: [
{
id: 4,
name: 'Grandchild',
children: [],
},
],
},
],
}
const result = findTreeNode(tree, 'id', 4)
/*
output:
{
id: 4,
name: 'Grandchild',
children: [],
}
*/
const tree = {
id: 1,
name: 'Parent',
type: 'folder',
children: [
{
id: 2,
name: 'Child 1',
type: 'file',
children: [],
},
{
id: 3,
name: 'Child 2',
type: 'folder',
children: [
{
id: 4,
name: 'Grandchild',
type: 'file',
children: [],
},
],
},
],
}
const result = findAllNode(tree, 'type', 'file')
/*
output:
[
{
id: 2,
name: 'Child 1',
type: 'file',
children: [],
},
{
id: 4,
name: 'Grandchild',
type: 'file',
children: [],
}
]
*/
const scrollTopVal = getScrollTop()
setScrollTop(0)
scrollTo(0, 1)
await copyToClipboard('Thank you javascript', () => console.log('Copied!'))
formatTimeLength(45)); // 45秒
formatTimeLength(310)); // 5分10秒
formatTimeLength(7383)); // 2小时3分3秒
formatTimeLength(259200)); // 3天0小时0分0秒
Continuously updating...