首页 > Web开发 > 详细

js 驼峰命名转烤串

时间:2021-04-19 11:12:12      阅读:18      评论:0      收藏:0      [点我收藏+]

直接贴代码吧:

/**
 * 驼峰命名转烤串
 * @param camelStr - 驼峰字符串
 * @return {string} - 烤串类型的字符串
 * example ModifyJDRelatedOrderID -> modify-jd-related-order-id
 */
function camelToKebab (camelStr = ‘‘) {
  // 判断是否是 大驼峰
  const isUpper = camelStr[0].charCodeAt() >= 65 && camelStr[0].charCodeAt() <= 90
  const handleStr = camelStr.replace(/([A-Z])/g, ‘-$1‘).toLowerCase()
  let kebabStr = handleStr
  if (isUpper) {
    kebabStr = handleStr.slice(1)
  }
  // 处理连续大写的情况
  const newKebabArr = []
  const kebabSplitArr = kebabStr.split(‘-‘)
  kebabSplitArr.forEach((item, index) => {
    if (item.length > 1) {
      newKebabArr.push(item)
    } else {
      let combineStr = ‘‘
      const subKebabArr = kebabSplitArr.slice(index)
      for (let i = 0; i < subKebabArr.length; i++) {
        if (subKebabArr[i].length > 1) break
        combineStr += subKebabArr[i]
      }
      newKebabArr.push(combineStr)
      kebabSplitArr.splice(index + 1, combineStr.length - 1)
    }
  })
  return newKebabArr.join(‘-‘)
}

参考:

js驼峰和中划线连字符相互转化的最佳实践

程序变量命名的几种叫法

js 驼峰命名转烤串

原文:https://www.cnblogs.com/taohuaya/p/14675576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!