Skip to content

字符串

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
 */

Released under the MIT License.