1
0

index.ts 836 B

123456789101112131415161718192021
  1. /**
  2. * 将字符串转换为 camelCase 或 PascalCase 风格的命名约定
  3. * @param str 要转换的字符串
  4. * @param isPascalCase 指示是否转换为 PascalCase 的布尔值,默认为 false
  5. * @returns 转换后的字符串
  6. */
  7. export function camelCase(str: string, isPascalCase: boolean = false): string {
  8. // 将字符串分割成单词数组
  9. let words: string[] = str.split(/[\s_-]+/);
  10. // 将数组中的每个单词首字母大写(除了第一个单词)
  11. let camelCased: string[] = words.map((word, index):string => {
  12. if (index == 0 && !isPascalCase) {
  13. return word.toLowerCase(); // 第一个单词全小写
  14. }
  15. return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
  16. });
  17. // 将数组中的单词拼接成一个字符串
  18. return camelCased.join('');
  19. };