字符串
camelize
将 xx-xx 转为 xxXx 大驼峰格式
typescript
/**
* 将xx-xx转为xxXx 大驼峰格式
* @param { string } s 字符串
* @returns
*/
export function camelize(s: string): string {
return s.replace(/-(\w)/g, (all, letter) => letter.toUpperCase())
}
camelize('get-data') // getData
ensurePrefix
确保前缀有这个字符串
typescript
/**
* 确保前缀有这个字符串
* @param { string } prefix 前缀
* @param { string } str 字符串
* @returns
*/
export function ensurePrefix(prefix: string, str: string) {
if (!str.startsWith(prefix)) return prefix + str
return str
}
ensurePrefix('a', 'b') // ab
ensureSuffix
确保后缀有这个字符串
typescript
/**
* 确保后缀有这个字符串
* @param { string } suffix 后缀
* @param { string } str 字符串
* @returns
*/
export function ensureSuffix(suffix: string, str: string) {
if (str.endsWith(suffix)) return str
return str + suffix
}
ensureSuffix('a', 'b') // ba
hyphenate
将大驼峰转为 xx-xx
typescript
/**
* 将大驼峰转为xx-xx
* @param { string } s 字符串
* @returns
*/
export function hyphenate(s: string): string {
return s.replace(/([A-Z])/g, '-$1').toLowerCase()
}
hyphenate('getData') // get-datas
pwdLevel
检测字符串强度
typescript
/**
* 检测字符串强度
* @param { string | number } s 字符串
* @param { number } minimum 长度 默认 6
* @returns
*/
export function pwdLevel(s: string | number, minimum: number = 6): number {
let level = 0
s = `${s}`
if (s.match(/[a-z]/g)) level++
if (s.match(/[A-Z]/g)) level++
if (s.match(/[0-9]/g)) level++
if (s.match(/[^a-zA-Z0-9]/g)) level++
if (s.length < minimum) level = 0
return level
}
pwdLevel('1') // 0
spaceFormat
将多个空格统一处理为空
typescript
/**
* 将多个空格统一处理
* @param { string } str 字符串
* @param { string } replacer 替换为 默认 ' '
* @returns
*/
export function spaceFormat(str: string, replacer: string = ' ') {
return str.replace(/\s+/g, replacer)
}
spaceFormat('string')
trim
删除空格
typescript
export type TrimType = 'all' | 'pre' | 'around' | 'post'
/**
* 删除空格
* @param { string } s 字符串
* @param { TrimType } type 所有 | 前置 | 前后 | 后置 'all' | 'pre' | 'around' | 'post'
* @returns
*/
export function trim(s: string, type: TrimType = 'around'): string {
if (type === 'pre') return s.replace(/(^\s*)/g, '')
if (type === 'post') return s.replace(/(\s*$)/g, '')
if (type === 'all') return s.replace(/\s+/g, '')
if (type === 'around') return s.replace(/(^\s*)|(\s*$)/g, '')
return s
}
/**
* 删除空格
* @param { string } s 字符串
* @param { TrimType } type 所有 | 前置 | 前后 | 后置 'all' | 'pre' | 'around' | 'post'
* @defalut around
* @returns
*/