命名转小驼峰大驼峰中划线

本文介绍了两个字符串格式转换函数,一是将中划线形式转换为小驼峰,二是实现大、小驼峰之间的互转。通过示例展示了如何使用这些函数处理字符串,适用于前端、后端开发中的命名约定统一。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 中划线转驼峰

说明:不区分大小写,一律转换为驼峰。默认转为小驼峰。

转换示例:
t-button-test-1 => tButtonTest1
t-Button-Test-1 => tButtonTest1
Test-BUTTON-test-1 => testButtonTest1
TEST-BUTTON-TEST-1 => testButtonTest1

/**
  * 将中划线字符转换为驼峰字符,默认转为小驼峰。
  * @param {string} str 需要转换的字符
  * @param {number} num 转换后的类型,默认值1(0是大驼峰  1是小驼峰)
  * @returns  示例:t-button-test-1 => tButtonTest1
  */
function formatConversion(str:string, num:number = 0) {
  const arr = str.split('-');
  for (let i = 0; i < arr.length; i += 1) {
    if (i === 0 && num === 1) {
      arr[i] = arr[i].charAt(0).toLowerCase() + arr[i].substring(1).toLowerCase();
    } else {
      arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1).toLowerCase();
    }
  }
  return arr.join('');
}

console.log(formatConversion('t-button-test-1')); // tButtonTest1
console.log(formatConversion('t-Button-Test-1')); // tButtonTest1
console.log(formatConversion('Test-BUTTON-test-1')); // testButtonTest1
console.log(formatConversion('TEST-BUTTON-TEST-1')); // testButtonTest1

2 驼峰转中划线

说明:不区分大驼峰、小驼峰,一律转换为中划线连接。

转换示例:
TButtonTest1 => t-button-test-1
tButtonTest1 => t-button-test-1
TestButtonTest1 => test-button-test1
testButtonTest1 => test-button-test1

/**
  * 将驼峰字符转换为中划线字符
  * @param {string} str 需要转换的字符
  * @returns 示例:TButtonTest1 => t-button-test-1
  */
function formatConversion(str:string) {
  return str.replace(/([a-zA-Z])([A-Z])/g, '$1-$2').toLowerCase();
}

console.log(formatConversion('TButtonTest1')); // t-button-test1
console.log(formatConversion('tButtonTest1')); // t-button-test1
console.log(formatConversion('TestButtonTest1')); // test-button-test1
console.log(formatConversion('testButtonTest1')); // test-button-test1

3 驼峰互转

说明:大驼峰转小驼峰、小驼峰转大驼峰。默认转为小驼峰。

转换示例:
tButtonTest1 => TButtonTest1
TButtonTest1 => tButtonTest1

/**
  * 大、小驼峰互转,默认转为小驼峰。
  * @param {string} str 需要转换的字符
  * @param {number} num 转换后的类型,默认值1(0是大驼峰  1是小驼峰)
  * @returns 示例:tButtonTest1 => TButtonTest1 ,TButtonTest1 => tButtonTest1
  */
function formatConversion(str:string, num:number = 1) {
  if (num === 0) {
  	return str.substr(0, 1).toUpperCase() + str.substr(1);
  } else {
  	return str.substr(0, 1).toLowerCase() + str.substr(1);
  }
}

console.log(formatConversion('TButtonTest1')); // tButtonTest1
console.log(formatConversion('tButtonTest1', 0)); // TButtonTest1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值