帕斯卡命名法
    pascalCase
    功能介绍:将 str-demo 转换为: StrDemo

    1. /*
    2. str.replace(regexp | substr, newSubStr | function)
    3. 假如replace()方法的第一个参数是一个RegExp 对象,则代表第n个括号匹配的字符串。
    4. (对应于上述的$1,$2等。)例如,如果是用 /(\a+)(\b+)/ 这个来匹配,p1 就是匹配的 \a+,p2 就是匹配的 \b+。
    5. 正则表达式表达式 - 语法:
    6. \w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
    7. ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。
    8. [^ABC] 匹配除了 [...] 中字符的所有字
    9. \s 匹配所有空白符,包括换行;
    10. \S 匹配非空白符,不包括换行;
    11. \s\S 匹配所有;
    12. 正则表达式表达式 - 元字符:
    13. \\ * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
    14. \\ + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
    15. \\ ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。
    16. \\ * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
    17. */
    18. export function pascalCase(str: string) {
    19. return (
    20. str.charAt(0).toUpperCase() +
    21. str.slice(1).replace(/-(\w)/g, (a, b) => b.toUpperCase())
    22. );
    23. // 方法二:
    24. // return name.replace(/(^|-)(\w)/g, (...args) => args[2].toUpperCase())
    25. }