javascript 使用记录

57 阅读1分钟

1. 常用正则表达式

手机号:/^1[3456789]\d{9}$/, 
邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, 
链接:/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/, 
edu教育邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.edu\.cn$/, 
密码包含大小写字母和数字:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*).+$/, 
仅支持中文空格和英文大小写字母:/^[a-zA-Z \u4e00-\u9fa5]+$/,

2. Array Set Map转换

const array = [1, 2, 3, 4];
// Array -> Set
const set = new Set(array); 
// Array去重 
const arr = Array.from(set); 
// Map -> Array 
const map = new Map().set('GFG', 1).set('Geeks', 2);
const keys = map.keys(); 
const arr = [...keys];

3. Enum获取数据类型

enum ENUM_TYPE { ALL = 'all', SOME = 'some', LITTLE = 'little' } 
// 获取枚举的 value 
type IValue = `${ENUM_TYPE}` // 'all' | 'some' | 'little' 
// 获取枚举的 key 
type IKey = keyof typeof ENUM_TYPE // 'ALL' | 'SOME' | 'LITTLE'

4. 字符串数组排序

const list = ['abc123', 'abc11', 'abc2'];
const newList = list?.sort(
  (a, b) =>
    a.location.name?.localeCompare(b.location.name || '', 'zh-CN', {
      numeric: true,
    }) as number,
)
// newList = ['abc2', 'abc11', 'abc123']