合同小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
836 B

  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. };